flatbuffers:基于跨平台技术的序列化库项目

FlatBuffers: Memory Efficient Serialization Library

分支10Tags50
文件最后提交记录最后更新时间
7 个月前
21 天前
6 个月前
6 个月前
5 年前
21 天前
4 个月前
2 个月前
9 个月前
6 个月前
4 个月前
2 个月前
2 个月前
6 个月前
9 个月前
4 个月前
4 年前
5 个月前
9 个月前
4 个月前
3 年前
3 年前
2 个月前
1 年前
3 个月前
2 个月前
2 个月前
4 年前
1 个月前
21 天前
2 个月前
5 个月前
1 年前
1 年前
9 个月前
3 年前
3 年前
7 年前
6 个月前
3 年前
1 年前
6 个月前
3 个月前
6 个月前
6 个月前
9 个月前
3 年前
4 个月前
2 个月前
9 个月前
5 年前
6 个月前
10 年前
1 年前
1 年前
6 个月前
6 个月前
3 个月前
3 个月前
1 年前
3 年前
2 年前
1 年前

logo

FlatBuffers

构建状态 BuildKite 状态 模糊测试状态 Discord 聊天 Twitter 关注 Twitter 关注

FlatBuffers 是一款跨平台序列化库,其架构旨在实现最高的内存效率。它允许您直接访问序列化数据,无需事先进行解析或解包,同时仍保持出色的向前/向后兼容性。

快速开始

  1. 构建 flatbuffers 编译器(flatc

    使用 cmake 为您的平台创建构建文件,然后执行编译(以 Linux 为例)。

    cmake -G "Unix Makefiles"
    make -j
    
  2. 定义您的 flatbuffer 模式(.fbs

    编写模式以定义您想要序列化的数据。有关示例,请参见 monster.fbs

  3. 为您的语言生成代码

    使用 flatc 编译器处理您的模式,并生成特定于语言的代码:

    ./flatc --cpp --rust monster.fbs
    

    这将生成 monster_generated.hmonster_generated.rs 文件。

  4. 序列化数据

    使用生成的代码以及 FlatBufferBuilder 来构建您的序列化缓冲区。(C++ 示例

  5. 传输/存储/保存缓冲区

    以您希望的任何方式使用序列化缓冲区。可以将其发送给他人、保存供以后使用等等。

  6. 读取数据

    使用生成的访问器从序列化缓冲区中读取数据。

    读取数据的语言或模式版本不必与写入时相同,FlatBuffers 确保数据可跨语言和模式版本读取。有关示例,请参见 Rust 示例 读取由 C++ 写入的数据。

文档

请前往我们的 landing page 浏览完整文档。

支持的操作系统

  • Windows
  • macOS
  • Linux
  • Android
  • 以及其他任何配备最新 C++ 编译器(C++ 11 及更高版本)的操作系统

支持的编程语言

为多种流行语言提供代码生成工具和运行时库。

  1. C
  2. C++ - snapcraft.io
  3. C# - nuget.org
  4. Dart - pub.dev
  5. Go - go.dev
  6. Java - Maven
  7. JavaScript - NPM
  8. Kotlin
  9. Lobster
  10. Lua
  11. PHP
  12. Python - PyPI
  13. Rust - crates.io
  14. Swift - swiftpackageindex
  15. TypeScript - NPM
  16. Nim

版本控制

FlatBuffers 不遵循传统的 SemVer 语义化版本控制(详见 rationale),而是采用发布日期作为版本格式。

贡献

若要为此项目贡献代码,请参阅 CONTRIBUTING

社区

安全

有关漏洞报告,请参阅我们的 安全政策

许可

Flatbuffers 采用 Apache 许可证 2.0 版授权。完整许可证文本详见 LICENSE