猕猴桃消息格式
Kiwi是一种基于模式的二进制格式,用于有效地编码数据树。 它的灵感来自Google的格式,但更简单,编码更紧凑,并且对可选字段的支持更好。
目标:
常用值的有效编码:可变长度编码用于数字值,其中较小的值占用较少的空间。
复合对象的有效编码: struct功能支持嵌套对象,且编码开销为零。
可选字段的存在是可检测到的:对于协议缓冲区,这是不可能的,尤其是对于重复字段。
线性可序列化:读取和写入都是单扫描操作,因此它们具有高速缓存效率并保证了时间复杂度。
向后兼容性:新版本的架构仍可以读取旧数据。
前向兼容性:如果新模式的副本与数据捆绑在一起,则旧版本的模式可以选择读取新数据(新模式可让解码器跳过未知字段)。
实现简单: API非常少,生成的C ++代码仅取决于单个文件。
非目标:
最佳位打包:编码后可以使用压缩,以在需要时节省更多空间。
本机类型
详细参考:https://github.com/evanw/kiwi/blob/master/examples/cpp.md