Go Wiki: GoGenerateTools

go generate 只有在有可用的工具时才有用!这是一个不完整的有用代码生成工具列表。

  • goyacc – Go 的 Yacc。
  • stringer – 为枚举实现 fmt.Stringer 接口。
  • gostringer – 为枚举实现 fmt.GoStringer 接口。
  • jsonenums – 为枚举实现 json.Marshalerjson.Unmarshaler 接口。
  • go-syncmap - 使用包作为 sync.Map 的泛型模板生成 Go 代码。
  • go-syncpool - 使用包作为 sync.Pool 的泛型模板生成 Go 代码。
  • go-atomicvalue - 使用包作为 atomic.Value 的泛型模板生成 Go 代码。
  • go-nulljson - 使用包作为泛型模板生成 Go 代码,该模板实现了 database/sql.Scannerdatabase/sql/driver.Valuer
  • go-enum - 使用包作为泛型模板生成 Go 代码,该模板为枚举实现了接口 fmt.Stringer | binary | json | text | sql | yaml
  • enumer - 生成将 Go 枚举转换为字符串或从字符串转换的 Go 代码。
  • go-import — 执行非 Go 文件的自动导入。
  • gojson - 从示例 json 文档生成 go 结构定义。
  • vfsgen - 生成一个 vfsdata.go 文件,该文件静态地实现了给定的虚拟文件系统。
  • goreuse - 通过替换定义,使用包作为泛型模板生成 Go 代码。
  • embedfiles - 将文件嵌入到 Go 代码中。
  • ragel - 状态机编译器
  • peachpy - 嵌入在 Python 中的 x86-64 汇编器,生成 Go 汇编
  • bundle - Bundle 创建一个适合包含在特定目标包中的源包的单源文件版本。
  • msgp - 用于 MessagePack 的 Go 代码生成器
  • protobuf - protobuf
  • thriftrw - thrift
  • gogen-avro - avro
  • swagger-gen-types - 从 swagger 规范生成 go 类型
  • avo - 使用 Go 生成汇编代码
  • Wire - Go 的编译时依赖注入
  • sumgen - 从和类型声明生成接口方法实现
  • interface-extractor - 生成所需类型的接口,仅包含包内使用的方法。
  • deep-copy - 为给定类型创建深拷贝方法。
  • libfsm - fsm 工具包,支持(其中包括)Go 和 Go 风格的 amd64 汇编,用于匹配正则表达式
  • re2c - C、C++ 和 Go 的词法分析器生成器
  • re2dfa - 将正则表达式转换为有限状态机并输出 Go 源代码
  • pigeon - Go 的 PEG 解析器生成器

此内容是 Go Wiki 的一部分。