Protocol Buffers Data Type Go Code Generation
External
https://protobuf.dev/reference/go/go-generated
Internal
Overview
Protocol Buffer files are processed by the Protocol Buffer compiler protoc
, which needs a Go plugin to generate Go file. The plugin is installed as described in the Installation section below. The protoc
command line details are discussed in the [[]] section.
Installation
The generic compiler must be installed with TODO.
To generate Go code, the Go plugin must be installed with:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
This will install a protoc-gen-go
binary in ${GOBIN}
.
Code Generation
protoc \
--proto_path=./proto \
--go_out=./pkg/person \
--go_opt=Mperson.proto=. \
./proto/person.proto
The compiler creates a single source file for each .proto
command line-provided input file. The name of the output file is the name of the corresponding .proto
file where the .proto
extension is replaced with .pb.go
. The newly created files will be placed under the directory specified by --go_out
, but where exactly depends on the --go_opt
compiler flags, as shown below. In the example above, a ./pkg/person/person.pb.go
file will be created.
Arguments
--proto_path
The directory where to find the Protocol Buffer files. The individual Protocol Buffer files specified on the command line must be relative to this directory.
--go_out
The directory where the compiler writes the Go output. Where exactly in the directory depends on the value of the --go-opt
value.