介绍
protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。
这个库目前使用还不是太流行,谷歌内部很多产品都有使用。
支持
Protobuf 提供了C++、java、python语言的支持,提供了windows(proto.exe)和linux平台动态编译生成proto文件对应的源文件。proto文件定义了协议数据中的实体结构(message ,field)
作用
Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。
Protobuf 和 Xml、Json序列化的方式不同,采用了 二进制字节 的序列化方式,用字段索引和字段类型通过算法计算得到字段之前的关系映射,从而达到 更高的时间效率和空间效率
应用场景
特别适合对数据大小和传输速率比较敏感的场合使用