最近有项目需要使用到Protobuf,之前没有接触过它,经过一天的时间认识了它,现在来总结一下。
ProtoBuf
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Protobuf,Protocol buffers的简称。它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
它是二进制格式,支持多种不同的编程语言,如Java,Objective-C,PHP,Python等;
同时,支持向后兼容和向前兼容;
它在性能上比XML的要好;
具有代码生成机制。
ProtoBuf的语法
字段格式:限定修饰符① | 数据类型② | 字段名称③ | = | 字段编码值④ | [字段默认值⑤]
①.限定修饰符包含 required\optional\repeated
Required: 表示是一个必须字段,必须相对于发送方,在发送消息之前必须设置该字段的值,对于接收方,必须能够识别该字段的意思。发送之前没有设置required字段或者无法识别required字段都会引发编解码异常,导致消息被丢弃。