google/flatbuffers

FlatBuffers for PHP

安装次数: 78,865

依赖者: 4

建议者: 0

安全: 0

星星: 23,078

关注者: 645

分支: 3,223

开放问题: 161

语言:C++

v24.3.25 2024-03-26 05:18 UTC

README

Build status BuildKite status Fuzzing Status OpenSSF Scorecard Join the chat at https://gitter.im/google/flatbuffers Discord Chat Twitter Follow Twitter Follow

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++ 编写的数据。

文档

访问我们的 着陆页 浏览我们的文档。

支持的操作系统

  • 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 版本控制(请参阅 理由),而是使用发布日期的格式。

贡献

要为该项目做出贡献,请查看CONTRIBUTING

社区

安全

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

许可

FlatBuffers采用Apache License,版本2.0许可。有关完整许可文本,请参阅LICENSE