| 原作者 | ワウター・ファン・オールトメルセン |
|---|---|
| 開発者 | デレク・ベイリー |
| 初回リリース | 2014年6月17日[1] |
| 安定リリース | 24.3.25 [2]
/ 2024年3月26日 |
| リポジトリ |
|
| 書かれた | C++ |
| オペレーティング·システム | Android、Microsoft Windows、Mac OS X、Linux |
| タイプ | シリアル化フォーマットとライブラリ、IDLコンパイラ |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | フラットバッファ |
FlatBuffersは、 Protocol Buffers、Thrift、Apache Avro、SBE、Cap'n Protoに似たシリアル化形式を実装したフリーソフトウェア ライブラリで、主に Wouter van Oortmerssen によって書かれ、 Googleによってオープンソース化されています。これは「ゼロコピー」デシリアライゼーションをサポートしているため、シリアル化されたデータにアクセスする際に、最初にそれをメモリの別の部分にコピーする必要がありません。これにより、これらの形式のデータへのアクセスは、JSON、CSV、そして多くの場合 Protocol Buffers などのより広範な処理を必要とする形式のデータよりもはるかに高速になります。ただし、他のシリアル化形式と比較すると、 FlatBuffers の処理には通常より多くのコードが必要であり、一部の操作 (一部の変更操作など) は実行できません。
シリアル化された形式では、すべてのデータを解析せずに、特定のデータ要素 (個々の文字列または整数プロパティなど) にランダムにアクセスできます。可変長の整数を使用する Protocol Buffers とは異なり、FlatBuffers は整数をネイティブ サイズでエンコードします。これにより、パフォーマンスは向上しますが、エンコードされた表現が長くなります。
FlatBuffersは、 C++、C#、C、Go、Java、JavaScript、Kotlin、Lobster、Lua、PHP、Python、Rust、Swift、TypeScriptで書かれたソフトウェアで使用できます。スキーマコンパイラはAndroid、Microsoft Windows、macOS、Linuxで動作しますが、[3]ゲームやその他のプログラムは、 iOS、AmazonのFire OS、Windows Phoneなど、他の多くのオペレーティングシステムでもシリアル化作業にFlatBuffersを使用しています。[4]
Van Oortmerssenはもともとゲーム開発や類似のアプリケーション向けにFlatBuffersを開発しました。[5] [1]
FlatBuffersにはシリアル化されるデータを定義する独自のインターフェース定義言語がありますが、Protocol Buffers .proto形式で定義されたスキーマもサポートしています。 [6]
ユーザー
FlatBuffers の著名なユーザー:
- 人気のあるフリーソフトウェアの2DゲームプログラミングライブラリであるCocos2d-xは、FlatBuffersを使用してすべてのゲームデータをシリアル化します。 [7]
- Facebook Androidクライアントは、ディスクストレージとFacebookサーバーとの通信にFlatBuffersを使用しています。以前使用されていたJSON形式はパフォーマンスが悪かった。[8]
参照
参考文献
- ^ ab ワウター・ファン・オールトメルセン (2014-06-17)。 「FlatBuffers: メモリ効率の高いシリアル化ライブラリ」。2017年6月15日に取得。
- ^ “リリース 24.3.25”. 2024年3月26日. 2024年4月23日閲覧。
- ^ 「GitHub — google/flatbuffers: メモリ効率の高いシリアル化ライブラリ」。GitHub 。 2020年12月10日閲覧。
- ^ 「FlatBuffers for Unity」。eXiin。2015-09-21。2017-06-15閲覧。私たちは、私たちが構築しているすべて
の主要なモバイル プラットフォーム (iOS、Android、Amazon Os [sic]、Windows Phone) で flatbuffers [sic] をテストしましたが、非常にうまく動作しました。
- ^ 「FlatBuffers ドキュメント」 。2017年 6 月 21 日取得。FlatBuffers
は、C++、C#、C、Go、Java、JavaScript、PHP、Python 用の効率的なクロスプラットフォーム シリアル化ライブラリです。元々は、ゲーム開発やその他のパフォーマンスが重要なアプリケーション用に Google で作成されました。
- ^ Kenton Varda (2014-06-17). 「Cap'n Proto、FlatBuffers、および SBE」。2017年6月15日閲覧。
- ^ 「Cocos2d-x: Flatbuffers 名前空間リファレンス」。
- ^ George Xie (2015-07-31). 「FlatBuffers で Android 上の Facebook のパフォーマンスを向上」。2017-06-15取得。
ディスク キャッシュからのストーリーの読み込み時間が、ストーリーごとに 35 ミリ秒から 4 ミリ秒に短縮されました。一時的なメモリ割り当てが 75 パーセント削減されました。コールド スタート時間が 10 ~ 15 パーセント改善されました。ストレージ サイズが 15 パーセント削減されました。
