FlatBuffers
FlatBuffers是一个跨平台的序列化库,专为最大内存效率而设计。它允许你直接访问序列化数据而无需先解析/解包,同时仍具有出色的向前/向后兼容性。
快速入门
-
构建FlatBuffers编译器(
flatc
)使用
cmake
为你的平台创建构建文件,然后执行编译(Linux示例)。cmake -G "Unix Makefiles" make -j
-
定义你的FlatBuffer模式(
.fbs
)编写模式以定义你想要序列化的数据。参见monster.fbs作为示例。
-
为你的语言生成代码
使用
flatc
编译器将你的模式转换为特定语言的代码:./flatc --cpp --rust monster.fbs
这将生成
monster_generated.h
和monster_generated.rs
文件。 -
序列化数据
使用生成的代码以及
FlatBufferBuilder
构造你的序列化缓冲区。(C++
示例) -
传输/存储/保存缓冲区
按你的需求使用序列化缓冲区。发送给他人,保存以供稍后使用等...
-
读取数据
使用生成的访问器从序列化缓冲区读取数据。
不需要使用相同的语言/模式版本,FlatBuffers确保数据可在不同语言和模式版本之间读取。参见
Rust
示例读取由C++
写入的数据。
文档
访问我们的登陆页面浏览我们的文档。
支持的操作系统
- Windows
- macOS
- Linux
- Android
- 以及任何具有最新C++编译器的其他系统(C++ 11及更新版本)
支持的编程语言
为许多流行语言提供代码生成和运行时库。
- C
- C++ - snapcraft.io
- C# - nuget.org
- Dart - pub.dev
- Go - go.dev
- Java - Maven
- JavaScript - NPM
- Kotlin
- Lobster
- Lua
- PHP
- Python - PyPI
- Rust - crates.io
- Swift - swiftpackageindex
- TypeScript - NPM
- Nim
版本控制
FlatBuffers不遵循传统的SemVer版本控制(参见理由),而是使用发布日期的格式。
贡献
- FlatBuffers问题追踪器用于提交问题。
- stackoverflow.com使用
flatbuffers
标签提出任何关于FlatBuffers的问题。
*要为此项目做出贡献,*请参阅CONTRIBUTING。
社区
安全
请查看我们的安全政策以报告漏洞。
许可
Flatbuffers根据Apache许可证2.0版授权。完整许可文本请参见LICENSE。