GoGenerateTools
Sean Liao edited this page Jan 22, 2022
·
38 revisions
Pages 157
Clone this wiki locally
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
andjson.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
anddatabase/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