本文へスキップ

FlatBuffersとは?

ふらっとばっふぁーず

FlatBuffersとは、Googleが開発したシリアライズライブラリで、解析処理なしにバイト列から直接データにアクセスできる高速・省メモリな仕組みです。

FlatBuffersは、Googleがゲームや組み込みシステム向けに開発したオープンソースシリアライゼーションライブラリです。JSONProtocol Buffersと同様にデータを効率的にシリアライズ・デシリアライズする目的で使われますが、最大の特徴はデシリアライズ(解析)が不要な点にあります。

通常のシリアライズライブラリはバイト列を受け取ったあと、メモリ上のオブジェクトに変換する処理(デシリアライズ)を行います。FlatBuffersではバッファ自体に必要な情報が含まれており、変換処理なしにバイト列へのポインタアクセスだけで値を読み取れます。これにより次のような利点が生まれます。

  • デシリアライズのメモリ確保・コピーが不要なため処理が非常に高速。
  • メモリフットプリントが小さくモバイル・組み込み環境に適している。
  • C++、Java、C#、Go、Python など多くの言語に対応したコード生成ツールを提供。
  • スキーマ(.fbs ファイル)を定義することでデータ構造の変更にも柔軟に対応できる。

ゲームエンジンでのアセット転送、リアルタイム通信プロトコル、センサーデータ転送など、低レイテンシが要求される場面で採用されています。Protocol Buffersとの主な違いは、後者がデシリアライズを前提とするのに対し、FlatBuffersはゼロコピー・ゼロパースのアクセスを設計思想の核心に置いている点です。

使い方・例文

モバイルゲームでサーバーから大量のキャラクターデータを受け取る際、FlatBuffersを使うとデシリアライズなしにバッファを直接参照できるため、読み込み時間とメモリ消費を大幅に抑えることができます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語