Repolode
google

google/flatbuffers

バイナリデータを解析・展開せずに直接読み取れる、クロスプラットフォームのシリアライズライブラリです。

代替できる製品:Protocol Buffers

スター
26,567
フォーク
3,712
未解決の Issue
333
最終コミット
6 時間前

これは何?

FlatBuffersは、メモリ効率を重視して設計されたシリアライズライブラリです。データはバイナリバッファに格納され、その場でアクセスできるため、アプリケーションはシリアライズ済みのバイト列からフィールドを直接読み取れます。オブジェクトにデシリアライズしてから読み取る必要はありません。また、スキーマが進化しても前方互換性と後方互換性を維持します。

データをスキーマファイル(.fbs)で定義し、flatcコンパイラを実行すると、使用する言語向けのアクセサーコードが生成されます。リポジトリには、C、C++、C#、Dart、Go、Java、JavaScript、Kotlin、Lua、PHP、Python、Rust、Swift、TypeScriptなどのランタイムライブラリとコード生成機能が含まれています。

Windows、macOS、Linux、Androidに対応しており、最近のC++コンパイラ(C++11以降)が使えるプラットフォームで動作します。

主な機能

  • 01解析や展開を行わず、シリアライズ済みデータに直接アクセスできます。
  • 02単一のスキーマから、さまざまな言語向けのアクセサーコードを生成できます。
  • 03スキーマのバージョンが異なっても、前方互換性と後方互換性を保てます。
  • 04Windows、macOS、Linux、Androidで動作します。

ユースケース

  • 異なる言語で実装されたサービスやコンポーネント間でデータを受け渡す。
  • ゲームや組み込みシステムなど、高速でメモリ確保を伴わない読み取りが重要な場面でバイナリデータを保存する。
  • メモリマッピングを使い、大きなシリアライズ済みファイルをすべて読み込まずに読み取る。

クイックスタート

  1. 1

    CMakeでflatcのビルドを設定する

    cmake -G "Unix Makefiles"
  2. 2

    flatcコンパイラをコンパイルする

    make -j
  3. 3

    スキーマ(.fbs)を作成する。例はsamples/monster.fbsを参照

  4. 4

    スキーマから各言語向けのコードを生成する

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

使う前に知っておきたいこと

  • READMEにはflatcコンパイラをパッケージマネージャーでインストールする方法が記載されていません。CMakeとC++コンパイラを使ってソースからビルドする必要があります。

トピック

よくある質問

flatbuffers とは?
バイナリデータを解析・展開せずに直接読み取れる、クロスプラットフォームのシリアライズライブラリです。 FlatBuffersは、メモリ効率を重視して設計されたシリアライズライブラリです。データはバイナリバッファに格納され、その場でアクセスできるため、アプリケーションはシリアライズ済みのバイト列からフィールドを直接読み取れます。オブジェクトにデシリアライズしてから読み取る必要はありません。また、スキーマが進化しても前方互換性と後方互換性を維持します。
flatbuffers は無料で使えますか?ライセンスは?
flatbuffers は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
flatbuffers は今もメンテナンスされていますか?
活発にメンテナンス中。flatbuffers の最終コミットは 2026年10月21日 です。
flatbuffers は何に使えますか?
異なる言語で実装されたサービスやコンポーネント間でデータを受け渡す。 ゲームや組み込みシステムなど、高速でメモリ確保を伴わない読み取りが重要な場面でバイナリデータを保存する。 メモリマッピングを使い、大きなシリアライズ済みファイルをすべて読み込まずに読み取る。
flatbuffers のインストール方法は?
CMakeでflatcのビルドを設定する: cmake -G "Unix Makefiles" flatcコンパイラをコンパイルする: make -j スキーマ(.fbs)を作成する。例はsamples/monster.fbsを参照 スキーマから各言語向けのコードを生成する: ./flatc --cpp --rust monster.fbs
flatbuffers はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/google/flatbuffers

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト