FlatBuffers 是一个跨平台序列化库,专为最大化内存效率而设计。 它允许您直接访问序列化的数据,而无需先解析/解包,同时仍然具有出色的向前/向后兼容性。
构建 flatbuffers 的编译器 (flatc)
使用 cmake 为您的平台创建构建文件,然后执行编译(Linux 示例)。
cmake -G "Unix Makefiles"
make -j
定义您的 flatbuffer schema (.fbs)
编写 schema 以定义您想要序列化的数据。 有关示例,请参见 monster.fbs。
为您的语言生成代码
使用 flatc 编译器获取您的 schema 并生成特定于语言的代码
./flatc --cpp --rust monster.fbs
这将生成 monster_generated.h 和 monster_generated.rs 文件。
序列化数据
使用生成的代码以及 FlatBufferBuilder 来构建您的序列化缓冲区。 (C++ 示例)
传输/存储/保存缓冲区
随意使用您的序列化缓冲区。 发送给某人,保存以供以后使用,等等...
读取数据
使用生成的访问器从序列化缓冲区读取数据。
它不需要是相同的语言/schema 版本,FlatBuffers 确保数据在语言和 schema 版本之间是可读的。 请参阅 Rust 示例,读取由 C++ 写入的数据。
访问我们的 landing page 以浏览我们的文档。
适用于许多流行语言的代码生成和运行时库。
FlatBuffers 不遵循传统的 SemVer 版本控制(参见理由),而是使用发布日期的格式。
flatbuffers 标签,用于任何有关 FlatBuffers 的问题。要为此项目做出贡献,请参见 CONTRIBUTING。
请查看我们的 安全策略 以报告漏洞。
Flatbuffers 在 Apache License 2.0 版本下获得许可。 有关完整的许可文本,请参见 LICENSE。