1. 简介
google的一种数据交换格式,很多语言都有库文件。二进制格式,体积小,传输快。Github上有主页protobuf。
2. 结构
PB源码
{
PB基础库
{
Message抽象层–由一个抽象的Message类和从Message类里面单独分离出来的Reflection类构成.
Descriptor抽象层
IO子系统–不依赖于系统其他部分,实现统一的输入输出接口
}
PB编译器----源码生成器
}
3. 样例
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
每种消息类型都有一个或多个唯一编号的字段,每个字段都有一个名称和一个值类型,其中值类型可以是数字(整数或浮点数),布尔值,字符串,字节,甚至(如上例所示)其他协议缓冲区消息类型,允许您分层次地构建数据。您可以指定可选字段,必填字段和重复字段。您可以.proto在Protocol Buffer Language Guide中找到有关编写文件的更多信息。
API参考
协议缓冲区编码