protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
- 语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台
- 高效。即比 XML 更小(3 ~ 10 倍)、更快(20 ~ 100 倍)、更为简单
- 扩展性、兼容性好。你可以更新数据结构,而不影响和破坏原有的旧程序
- 创建 .proto 文件,定义数据结构
1
2
3
4
5
6
7
8
9
10
11
12
| // 例1: 在 xxx.proto 文件中定义 Example1 message
message Example1 {
optional string stringVal = 1;
optional bytes bytesVal = 2;
message EmbeddedMessage {
int32 int32Val = 1;
string stringVal = 2;
}
optional EmbeddedMessage embeddedExample1 = 3;
repeated int32 repeatedInt32Val = 4;
repeated string repeatedStringVal = 5;
}
|
- protoc 编译 .proto 文件生成读写接口
1
| $ protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto
|
调用接口实现序列化、反序列化以及读写