Go Wiki: GoGenerateTools
go generate 只有在有可用的工具時才有用!這是一個不完整的有用程式碼生成工具列表。
- goyacc – Go 的 Yacc。
- stringer – 為列舉實現
fmt.Stringer介面。 - gostringer – 為列舉實現
fmt.GoStringer介面。 - jsonenums – 為列舉實現
json.Marshaler和json.Unmarshaler介面。 - go-syncmap - 使用包作為
sync.Map的泛型模板生成 Go 程式碼。 - go-syncpool - 使用包作為
sync.Pool的泛型模板生成 Go 程式碼。 - go-atomicvalue - 使用包作為
atomic.Value的泛型模板生成 Go 程式碼。 - go-nulljson - 使用包作為泛型模板生成 Go 程式碼,該模板實現了
database/sql.Scanner和database/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 的一部分。