如何创建一个protobuf go插件插件

wei*_*ima 10 plugins grpc protoc

https://github.com/golang/protobuf

protoc-gen-go 是protoc中的插件,它为输入原型定义生成go绑定.

protoc-gen-go还有一个插件框架,它grpc是一个插件插件 https://github.com/golang/protobuf/tree/master/protoc-gen-go/grpc

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

我可以编写自己的插件并将其与grpc插件一起调用吗?

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

我是否需要强制将我的插件构建到protoc-gen-go中?如果没有,那么protoc-gen-go将如何找到myplugin?

Der*_*mon 7

protoc-gen-go 是一个 protoc 插件。我在下面为自定义工作编写了另一个 protoc 插件的示例。我还使用了调用其他插件的插件。

https://github.com/drekle/protoc-gen-goexample

Protoc 按名称查找这些插件protoc-gen-<PLUGIN_NAME>,它希望在您的路径中是二进制文件,并将解释它传递的参数,例如,--<PLUGIN_NAME>_out而不是--go_out为您的插件