BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google、FlatBuffersをオープンソース化: 効率の良いクロスプラットフォームのシリアライゼーションライブラリ

Google、FlatBuffersをオープンソース化: 効率の良いクロスプラットフォームのシリアライゼーションライブラリ

原文(投稿日:2014/06/18)へのリンク

Google "Fun Propulsion Labs" チームがFlatBuffersをオープンソース化した。FlatBuffersは特にゲーム開発者のパフォーマンス要求をサポートするために作られており、シリアライズされたデータをバッファに格納する。バッファはパースのオーバーヘッドなしに、ファイルに格納したり、そのままネットワークに伝送したりすることができる。

FlatBuffersのキーフィーチャーは以下の通り。

  • パッキング/アンパッキングなしで、シリアライズされたデータにアクセス
  • メモリ効率とスピード - データにアクセスするのに必要なメモリはバッファのメモリのみ。追加のメモリは必要ない。
  • 柔軟性 - オプションフィールドを介した前方および後方互換性
  • わずかなコードフットプリント
  • 強い型付け - ランタイム時でなくコンパイル時に捕捉されるエラー
  • 利便性 - 生成されたC++ヘッダーを介した簡潔なコード。必要に応じてランタイム時に効率良くスキーマとJSONライクな表現をパースするオプション機能 (他のJSONパーサよりも高速で優れたメモリ効率)
  • クロスプラットフォーム: C++で、STLを除いて他に依存しないよう書かれており、C++コンパイラのある任意のプラットフォームで使える。現在のところ、Android、Linux、Windows、OSX用のライブラリの構築方法および使用例が含まれている。

Protocol buffersやJSONのパースといった他のソリューションと比べてFlatBuffersの良いところは、オーバーヘッドが少ないところであり、これは特にパースが不要であるおかげだ。

C++でFlatBuffersを使うには、次のようなステップをとることになる。

ディスカッショングループにおける初期の議論からも明らかなように、まだ少し荒削りなところがある。Javaのサポートも現段階では実験的だ。C#サポートは最も人気のあるリクエストの1つであり、次のリリースではサポートされるかもしれない。

FlatBuffersについてもっと学びたければ、ドキュメントを参照しよう。

この記事に星をつける

おすすめ度
スタイル

BT