flatbuffers 谷歌开源的内存高效的序列化库
flatbuffers 支持的特性
- 可以直接访问数据而不用进行解析以及拆包
- 内存高效
- 灵活
- 较小的代码生成
- 强类型
- 方便使用
- 跨平台
与protoco buffers 的比较
主要区别在于FlatBuffers不需要解析/解包步骤即可访问数据,而通常需要结合每个对象的内存分配,然后才能访问数据。该代码也要大一个数量级。协议缓冲区既没有可选的文本导入/导出功能,也没有诸如联合的架构语言功能
使用flatbuffers的方法
- 编写schema
- 使用flatbuffers编译器生成代码(跨平台的)
- 使用FlatBufferBuilder构建对象
- 数据处理。。。。
参考资料
https://github.com/google/flatbuffers
https://google.github.io/flatbuffers/flatbuffers_white_paper.html