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

时间:2017-02-20 05:55:32

标签: 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?

1 个答案:

答案 0 :(得分:4)

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

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

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