go使用protobuf

admin / 文章 / ... / Reads: 2742

go使用protobuf

在go中使用protobuf,有两个可选用的包goprotobuf(go官方出品)和gogoprotobuf。 gogoprotobuf完全兼容google protobuf,它生成的代码质量和编解码性能均比goprotobuf高一些

安装protobuf

go get github.com/golang/protobuf/proto

使用goprotobuf

安装goprotobuf

go get github.com/golang/protobuf/protoc-gen-go

使用

protoc --go_out=. *.proto

使用gogoprotobuf

安装gogoprotobuf库

go get github.com/gogo/protobuf/proto
go get github.com/gogo/protobuf/gogoproto //这个不装也没关系

有两个插件可用

protoc-gen-gogo:和protoc-gen-go生成的文件差不多,性能稍微好一点
protoc-gen-gofast:生成的文件更复杂,性能快5-7倍

安装使用 protoc-gen-gogo

  1. go get github.com/gogo/protobuf/protoc-gen-gogo

  2. 进入到库的根目录【比如:cd $GOPATH/pkg/mod/github.com/gogo/protobuf@v1.3.2/protoc-gen-gogo】 Snip20221108_1

  3. 编译生成protoc-gen-gogo 【命令:go build】,并把生成的protoc-gen-gogo文件移到 $GOPATH/bin 目录下方便后续使用 WX20221108-173344@2x

  4. 使用:protoc --gogo_out=. *.proto

注意:此处如果不走第2,3步,使用时可能会报错:protoc-gen-gogo: program not found or is not executable

参考资料

https://www.cnblogs.com/jxzCoding/articles/16092494.html

例子
https://zhuanlan.zhihu.com/p/462408717
https://blog.csdn.net/qq_44766883/article/details/123955300

protoc --gogo_out=./src/protocol  ./src/protocol/*.proto --proto_path=./src/protocol

Comments

Make a comment

Author: admin

Publish at: ...

关于作者

王硕,网名信平,十多年软件开发经验,业余架构师,熟悉 Java/Python/Go 等,喜欢读书,音乐和宅在家里。
专注于研究互联网产品和技术,提供中文精品教程。 本网站与其它任何公司及/或商标无任何形式关联或合作。
Email: xujieiata@163.com

www.ultrapower.com ,王硕的博客,专注于研究互联网产品和技术,提供中文精品教程。 本网站与其它任何公司及/或商标无任何形式关联或合作。