Java序列化库,FlatBuffers 1.1 发布

b36g 10年前

FlatBuffers 是一个 Java 的序列化库,用于游戏和其他内存受限的应用。FlatBuffers 可以让你直接访问序列化后的数据,无需解压并进行解析的过程。同时提供很强的向前和向后兼容性。

FlatBuffers 支持 C++ 和 Java 语言,无需依赖第三方库支持。

FlatBuffers 使用命令行工具 flatc 用来生成 Java 和 C++ 的类。

经过几个月开发,FlatBuffers 1.1版本更新。这次的更新包含:

  • 对Java API进行了广泛的检修
  • out-of-the-box支持C#和Go
  • 一个可选的校对器,使FlatBuffers在不可信的情况下变得实用
  • 原型解析更容易从协议缓冲区迁移
  • 字段ID可选手动分配
  • 通过对一个键字段二进制查询的字典功能
  • bug修复和其他的改进

初始发布于去年6月份的FlatBuffers是Google推出的一种高效的开源跨平台序列化库,允许使用者在没有解析/拆包或分配额外内存的情况下读取数据。它支持模式演化(向前/向后兼容性)和可选的JSON转换。其具有如下特点:

  • 不需要打包/解包。它的结构化数据都以二进制形式保存,不需要数据解析过程,数据也可以方便传递。
  • 省内存、性能好(见附录1)
  • 强类型系统,在编译阶段就能预防一些bug的产生
  • 跨平台(C++11/Java)
  • ……

在FlatBuffers的使用方法方面,简单来说需要遵循以下步骤(具体示例可查看文末给出的链接):

  1. 编写一个用来定义数据结构的schema(IDL,接口定义)文件
  2. 使用FlatBuffer编译器flatc生成数据结构源代码(C++头文件或者Java类)
  3. 使用FlatBufferBuilder类创建flat的二进制buffer
  4. 保存或者发送buffer
  5. 接收并buffer并读取数据内容

FlatBuffers 1.1版本下载地址:https://github.com/google/flatbuffers/releases

FlatBuffers使用方法查看:http://liubin.org/2014/06/19/google-flatbuffers-cross-platform-serialization-library/

项目在GitHub上的托管地址:https://github.com/google/flatbuffers

更多的信息可查看FlatBuffers文档:https://google.github.io/flatbuffers/

详细信息请查看发行页面

下载地址: