¿Cuál es la diferencia entre Protocol Buffers y Flatbuffers?

Respuestas:

126

Escribí una comparación detallada de algunos sistemas de serialización, incluidos Protobufs y FlatBuffers, aquí:

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

Sin embargo, la comparación se centra más en comparar los tres nuevos sistemas de serialización de "copia cero" e incluye Protobufs principalmente como punto de referencia. Además, soy el autor de Cap'n Proto, y también el autor de Protobufs v2 (fui responsable del código abierto de Protobufs en Google), por lo que la comparación puede estar sesgada.

Tenga en cuenta que Protobufs se utiliza en todos los servicios propios de Google, mientras que FlatBuffers es más un proyecto experimental que, según tengo entendido, no ha sido ampliamente adoptado internamente.

Kenton Varda
fuente
Hola señor Varda, ¡muchas gracias por los comentarios! ¡Y gracias por estas útiles herramientas de código abierto! Como usuario habitual, utilizo lo bueno Protocol Buffersen los proyectos. Después de revisar las noticias FlatBuffersy el proyecto Github, descubrí que es experimental como dijiste y no está muy de moda, así que también busqué la comparación de rendimiento entre PBy FBy publiqué esta pregunta. ¡Gracias por la comparación! ¡Significa mucho! Y no puedo estar más de acuerdo con la benchmarksección de tu publicación the relative performance of these libraries depends deeply on the use case.
minería el
8
Puede que no sea ampliamente adoptado, pero el punto de referencia parece bastante bueno. La biblioteca de juegos de código abierto cocos2d-x la está usando con éxito ahora. Creo que Flatbuffer ha pasado la fase experimental
user18853
3
@KentonVarda, ¿alguna actualización nueva para las comparaciones con FlatBuffers desde junio de 2014?
TJR
@TJR: No me he mantenido al día. Probablemente ha cambiado un montón. Me complace incorporar cualquier actualización si alguien me informa qué debería actualizarse.
Kenton Varda
11
Facebook utiliza flatbuffers dentro de su aplicación de Android, según este artículo .
Alex Che