gogo

最后更新于:2022-04-02 02:57:10

[TOC] ### gogo gogo库基于官方库开发,增加了很多的功能,包括: * 快速的序列化和反序列化 * 更规范的Go数据结构 * goprotobuf兼容 * 可选择的产生一些辅助方法,减少使用中的代码输入 * 可以选择产生测试代码和benchmark代码 * 其它序列化格式 * gogo同样支持grpc: protoc --gofast_out=plugins=grpc:. my.proto ### gofast 速度优先 不支持其它gogoprotobuf extensions。 ``` go get github.com/gogo/protobuf/protoc-gen-gofast protoc --gofast_out=. myproto.proto ``` ### gogofast、gogofaster、gogoslick 更快的速度、更多的产生代码 - gogofast类似gofast,但是会导入gogoprotobuf. - gogofaster类似gogofast, 不会产生XXX_unrecognized指针字段,可以减少垃圾回收时间。 - gogoslick类似gogofaster,但是可以增加一些额外的方法gostring和equal等等 ``` go get github.com/gogo/protobuf/proto //binary = protoc-gen-gogofast、protoc-gen-gogofaster 、protoc-gen-gogoslick go get github.com/gogo/protobuf/{binary} go get github.com/gogo/protobuf/gogoproto protoc -I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=. myproto.proto ``` ### protoc-gen-gogo ``` go get github.com/gogo/protobuf/proto go get github.com/gogo/protobuf/jsonpb go get github.com/gogo/protobuf/protoc-gen-gogo go get github.com/gogo/protobuf/gogoproto ```
';