深入探讨Protobuf编译与日志包构建
1. Protobuf编译为Go代码
要将Protobuf编译成某种编程语言的代码,需要该语言的运行时环境。在Go语言中,有两种运行时可将Protobuf编译为Go代码。最初的运行时由Go团队和Google的Protobuf团队开发,后来有人分叉了这个运行时并开发出gogoprotobuf,它具有更多代码生成特性,且编组和解组速度更快。像Etcd、Mesos、Kubernetes等项目以及Dropbox和Sendgrid等公司都使用过gogoprotobuf。不过在2020年3月,Go团队发布了用于Protobuf的Go API重大修订版(APIv2),其性能得到提升,并具备反射API,能添加类似gogoprotobuf提供的功能。目前,使用gogoprotobuf的项目已开始转向APIv2,因此建议使用APIv2。
编译步骤如下:
1. 安装Protobuf运行时:
$ go get google.golang.org/protobuf/...@v1.25.0
- 在项目根目录下编译Protobuf:
$ protoc api/v1/*.proto \
--go_out=. \
--go_opt=paths=source_relative \
--proto_path=.
编译后,在 api/v1 目录下会生成一个名为 <
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



