protoc 和 protoc-gen-go 产生的 proto 文件代码对比

时间:2023-03-10 05:23:04
protoc 和 protoc-gen-go 产生的 proto 文件代码对比

protoc 命令来自 https://github.com/google/protobuf, 由于这里没有 go 的产生代码, go的产生代码在 protoc-gen-go  (https://github.com/golang/protobuf/)这里。

 

$ protoc --go_out=./go/ ./proto/helloworld.proto

$ protoc --go_out=plugins=grpc:./go2/  ./proto/helloworld.proto

上面两个命令,第一个产生的只是 protobuffer 文件序列化和反序列化的代码。

第二个产生的则除了第一个的代码外,还增加服务器和客户端通讯、实现的公共库代码。

https://github.com/grpc/grpc-go 这里的代码对应的包名是: google.golang.org/grpc 这里只是一些公共函数库, protoc 和 protoc-gen-go 这两个工具都不在这里。

产生 protoc-gen-go 这个工具的方法如下:

$ go get -u github.com/golang/protobuf/protoc-gen-go