编写 proto 文件后,会发现没有格式化,并且可能多人合作 pb文件会花样百出。偶然间发现 buf 这个工具还是比较强大的。
安装 buf
1.方法一
brew install bufbuild/buf/buf
2.方法二
go install github.com/bufbuild/buf/cmd/buf@v1.34.0
更多方式请参考 Install the Buf CLi
检查是否安装成功
buf --version
1.34.0
初始化项目
进入到 proto 的根目录,执行命令buf config init会自动生成buf.yaml文件
version: v2
lint:
use:
- DEFAULT
breaking:
use:
- FILE
更多配置参考 buf-yaml
创建 buf.gen.yaml文件,该文件替换了protoc所配置的插件等,即用 文件的形式 替代命令行的形式,这个还是很方便的。可以参考文章写给go开发者的gRPC教程-protobuf基础
# buf.gen.yaml
version: v2
plugins:
- remote: buf.build/protocolbuffers/go
# 输出到当前目录
out: .
opt:
- paths=source_relative
其中可以使用 buf format -w --exit-code 来格式化proto文件,也可以使用 buf lint 来检验proto文件,例如驼峰改为下划线等。
接下来就可以使用 buf generate 来生成 .go文件了。
更多使用可以参考: Buf Docs