Clone
38
GoGenerateTools
Sean Liao edited this page 2022-01-22 17:27:16 +01:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

go generate is only useful if you have tools to use it with! Here is an incomplete list of useful tools that generate code.

  • goyacc Yacc for Go.
  • stringer Implements fmt.Stringer interface for enums.
  • gostringer Implements fmt.GoStringer interface for enums.
  • jsonenums Implements json.Marshaler and json.Unmarshaler interfaces for enums.
  • go-syncmap - Generates Go code using a package as a generic template for sync.Map.
  • go-syncpool - Generates Go code using a package as a generic template for sync.Pool.
  • go-atomicvalue - Generates Go code using a package as a generic template for atomic.Value.
  • go-nulljson - Generates Go code using a package as a generic template that implements database/sql.Scanner and database/sql/driver.Valuer.
  • go-enum - Generates Go code using a package as a generic template which implements interface fmt.Stringer | binary | json | text | sql | yaml for enums.
  • enumer - Generates Go code that convert Go enum to/from strings.
  • go-import — Performs auto import of non go files.
  • gojson - Generates go struct definitions from example json documents.
  • vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
  • goreuse - Generates Go code using a package as a generic template by replacing definitions.
  • embedfiles - Embeds files into Go code.
  • ragel - State machine compiler
  • peachpy - x86-64 assembler embedded in Python, generates Go assembly
  • bundle - Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.
  • msgp - A Go code generator for MessagePack
  • protobuf - protobuf
  • thriftrw - thrift
  • gogen-avro - avro
  • swagger-gen-types - go types from swagger specifications
  • avo - generate assembly code with Go
  • Wire - Compile-time Dependency Injection for Go
  • sumgen - generate interface method implementations from sum-type declarations
  • interface-extractor - generates an interface of a desired type, with only methods used within the package.
  • deep-copy - creates a deep copy method for the given types.
  • libfsm - fsm toolkit supporting (among others) Go and Go-flavored amd64 assembly for matching regexps
  • re2c - lexer generator for C, C++ and Go
  • re2dfa - Transform regular expressions into finite state machines and output Go source code
  • pigeon - a PEG parser generator for Go