我对protoc-gen-govs有点困惑protoc-gen-go-grpc。我知道:
protoc-gen-go 包含用于 protobuf 消息序列化/反序列化的代码protoc-gen-go-grpc 包含 gRPC 服务器和客户端的代码但是,我正在使用以下命令
protoc -I $protodir --go_out=plugins=grpc:./genproto/ $protodir/v1/foo.proto
Run Code Online (Sandbox Code Playgroud)
并且生成的foo.pb.go包含用于消息序列化和gRPC 服务器/客户端的代码。另外,我只protoc-gen-go安装在我的系统上。
我有一种感觉,这是在 GO 中进行 gRPC的旧方法,而新方法是protoc --go_out=. --go-grpc_out=.
问题:
protoc --go_out=.(为什么它还生成 gRPC 客户端/服务器代码?)谢谢,直流
use*_*681 10
在老办法是使用github.com/golang/protobuf模块。它附带protoc-gen-go生成 protobuf 消息和grpc 代码的序列化(何时--go_out=plugins=grpc使用)。
所谓的新方法是使用google.golang.org/protobuf模块 = 协议缓冲区的 Go 绑定的主要修订。它带有一个protoc-gen-go不再支持生成 gRPC 服务定义的不同之处。对于 gRPC 代码,Go gRPC 项目protoc-gen-go-grpc开发了一个名为的新插件。该标志提供了一种以旧方式调用 gRPC 代码生成器的方法,现已弃用。plugins
重要提示:用户应努力为运行时库和用于生成 Go 绑定的 protoc-gen-go 插件使用相同的版本。
stackoverflow 上更长的答案。
另外,发行说明解释了这一点。
| 归档时间: |
|
| 查看次数: |
1668 次 |
| 最近记录: |