gogo使用
gogo
https://zhuanlan.zhihu.com/p/362436742
https://zhuanlan.zhihu.com/p/361737524
$ go get github.com/gogo/protobuf/proto
$ go get github.com/gogo/protobuf/{binary} //protoc-gen-gogofast、protoc-gen-gogofaster 、protoc-gen-gogoslick
$ go get github.com/gogo/protobuf/gogoproto
$ protoc -I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=. myproto.proto // 这里的{binary}不包含「protoc-gen」前缀
-
protoc-gen-gogo
: 最快的速度,最多的可定制化 -
- 可以通过扩展选项高度定制序列化。
go bench
https://blog.csdn.net/bigwhite20xx/article/details/105760238
v2 vs v3
下面这些和proto的协议没有必然练习,和protoc
以及protoc-gen-go
有关联
因为网上说 protoc-gen-go 此程序要使用 tag : 1.2.0 的版本
和protoc没有必然联系,只修改protoc-gen-gogo
默认下载的是v3的版本
go get github.com/gogo/protobuf/protoc-gen-gogofaster@v1.2.1
然后进行编译,就可以生成v3版本的,注意,要将gogo的编译选项和实际使用的二进制组合使用
GoGoProtoPackageIsVersion3
GoGoProtoPackageIsVersion2
proto.ProtoPackageIsVersion3
proto.ProtoPackageIsVersion2