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。