Apa perbedaan antara Protocol Buffer dan Flatbuffers?

109

Keduanya adalah perpustakaan serialisasi dan dikembangkan oleh pengembang Google. Apakah ada perbedaan besar di antara keduanya? Apakah banyak pekerjaan untuk mengubah kode menggunakan Protocol Buffer untuk menggunakan FlatBuffers ?

pertambangan
sumber

Jawaban:

126

Saya menulis perbandingan rinci dari beberapa sistem serialisasi, termasuk Protobufs dan FlatBuffers, di sini:

https://kentonv.github.io/capnproto/news/2014-06-17-capnproto-flatbuffers-sbe.html

Namun, perbandingan lebih berfokus pada membandingkan tiga sistem serialisasi "nol-salinan" baru, dan sebagian besar menyertakan Protobuf sebagai titik referensi. Juga, saya adalah penulis Cap'n Proto, dan juga penulis Protobufs v2 (saya bertanggung jawab untuk open source Protobufs di Google), jadi perbandingannya mungkin bias.

Perhatikan bahwa Protobufs digunakan di seluruh layanan Google sendiri, sedangkan FlatBuffers lebih merupakan proyek eksperimental yang seperti yang saya pahami belum diadopsi secara luas secara internal.

Kenton Varda
sumber
Hai, Tuan Varda, terima kasih banyak atas komentarnya! Dan terima kasih atas alat sumber terbuka yang sangat membantu ini! Sebagai pengguna biasa, saya menggunakan yang hebat Protocol Buffersdalam proyek. Setelah memeriksa berita tentang FlatBuffersdan proyek masuk Github, saya menemukan itu eksperimental seperti yang Anda katakan dan tidak terlalu panas, jadi saya juga mencari perbandingan kinerja antara PBdan FBdan memposting pertanyaan ini. Terima kasih atas perbandingannya! Itu sangat berarti! Dan saya sangat setuju dengan benchmarkbagian di posting Anda the relative performance of these libraries depends deeply on the use case.
pertambangan
8
itu mungkin tidak diadopsi secara luas tetapi tolok ukurnya terlihat cukup bagus. Perpustakaan game open source cocos2d-x berhasil menggunakannya sekarang. Saya pikir Flatbuffer telah melewati fase percobaan
user18853
3
@KentonVideo, ada pembaruan baru untuk perbandingan dengan FlatBers sejak Juni 2014?
TJR
@TJR: Saya belum mengikuti itu. Mungkin banyak yang telah berubah. Saya dengan senang hati memasukkan pembaruan apa pun jika seseorang memberi tahu saya apa yang harus diperbarui.
Kenton Varda
11
Flatbuffers digunakan oleh Facebook dalam aplikasi Android mereka, menurut artikel ini .
Alex Che