一、什么是Protobuf
Protobuf是一个序列化工具,可以进行高效的序列化,可以将类/结构体(structured data)
序列化成二进制。
其实,Protobuf就是一个编译器,它将我们写好的.proto
文件进行编译,得到目标语言的代码文件,文件中包括根据.proto
文件生成的structured data
,以及对这些structured data
进行系列化和反序列化的函数。
二、Python使用Protobuf
三、Golang使用Protobuf
使用步骤:
- 下载Protobuf 编译器:
protoc
- 安装Golang的Protobuf插件:
protoc-gen-go
$ go install google.golang.org/protobuf/cmd/protoc-gen-go
protoc
程序要调用protoc-gen-go
,所以要加入到$PATH
中
- 运行
protoc
,编译.proto
文
$ protoc -I=. --go_out=. ./helloworld.proto
-I, -IPATH
: 指定查找.proto
文件中的import
的路径--go_out
:生成Go文件,后面指定生成文件的路径helloworld.proto
: 要编译的.proto
文件的路径
如果要生成grpc
需要的代码,则--go_out
要指定使用grpc插件,这样写:--go_out=plugins=grpc:$OUTPUT_DIR