Protocol Buffers 简介
- Protocol Buffers(一下简称PB) 是由Google开发的,与语言无关,与平台无关。用于对结构化数据进行序列化(例如XML),但更小,更快,更简单。使用一次构造数据的方式,然后可以使用生成的特殊源代码轻松地使用各种语言在各种数据流中写入和读取结构化数据。
PB支持的语言有:Java, Python, Objective-C, C++,Dart, Go, Ruby, and C#
官方网站:
https://developers.google.com/protocol-buffers/docs/overview
下载安装Protocol Buffers 编译器
- 通过
https://github.com/protocolbuffers/protobuf/releases
下载好releases版本,根据自己电脑系统下载protoc-linux/win/osx.**
-
下载好后进行解压,然后找到bin目录下的protoc
-
执行:
chmod a+x protoc
- 在bin目录下就可以执行
./protoc –help
查看使用帮助
编译proto文件
-
执行
./protoc
会看到 以下截图,代表编译后输出的文件语言。 -
编译命令以
java
为例:
./protoc --proto_path=(proto\******文件所在的路径) --java_out=(导出java文件路径) message.proto(要编译的proto文件名)
执行完上命令后,会在导出文件路径下产生一个.java文件.
如果要导出别的语言只需要更改 --java_out 表示就可以了。
示例(java)
- 有如下message.proto 定义文件
syntax = "proto2"; //指定proto句法版本
option java_package = "protobuf";//指定java包名
option java_outer_classname = "MessageProto";//指定java名
message Message {
optional int32 version = 1; // message protocol version (required)
optional string id = 2; // message id (will be set by server)
optional int64 publish_ts = 3; // message publish time (will be set by server time)
optional int64 ttl = 4; // message expiration (required, in second)
}
- 将message.proto 保存在/home/pb下,现将该文件编程到/home/java下命令如下:
./protoc --proto_path=/home/pb/ --java_out=/home/java/ /home/pb/message.proto
这样就可以得到了MessageProto.java 文件就可以了。