why what protocol protobuf google buffers c++ windows protocol-buffers thrift

c++ - what - Buffer de ahorro frente a protocolo



what is protocol buffers (4)

Como he dicho como "¿Las diferencias más grandes de Thrift versus Protocol Buffers?" tema:

En referencia a la comparación Thrift vs Protobuf vs JSON :

Además, hay muchas herramientas adicionales interesantes disponibles para esas soluciones, que podrían decidir. Aquí hay ejemplos de Protobuf: Protobuf-wireshark , protobufeditor .

Esta pregunta ya tiene una respuesta aquí:

He usado PB durante bastante tiempo, pero Thrift siempre ha estado en mi mente.

Las ventajas principales del ahorro, como lo veo, son:

  1. Las colecciones nativas (es decir, vector, etc.) frente a PB repetidas proporcionan una funcionalidad similar, pero no del todo similar (sin iteradores a menos que excaves en RepeatedField que la documentación dice "no debería ser necesario en la mayoría de los casos").
  2. Se proporciona una implementación RPC decente, en lugar de solo ganchos para conectar el suyo.
  3. Más idiomas admitidos oficialmente (PB ofrece soporte "oficial" para Java, C ++, Python)

Los contras de Thrift:

  1. La implementación de RPC significa que no puedo conectar mi propia capa de cifrado / autenticación (por ejemplo) en la parte superior.
  2. El soporte de Windows no parece ser excelente.
  3. PB definitivamente parece tener, si no mejor, documentación más accesible.

Neutral:

  • Tamaño desconocido de .lib / .dll en Windows (Thrift).
  • Tamaño grande de .lib en Windows (PB, pero ofrece un -lite que es significativamente más pequeño).
  • En cuanto a la velocidad, ambos parecen ser similares.

Todavía no estoy listo para dar el paso y cambiar a Ahorro, ¿alguien puede ofrecerme más ventajas / desventajas o razones para ir de una manera u otra?

¡Gracias!


Debe especificar su caso (s) de uso en detalle. De lo contrario, este es un "¿Qué es mejor, un automóvil o un camión?" pregunta.


El principal motivo de nuestro proyecto para seguir con Thrift sobre los buffers de protocolo fue que los buffers de protocolo no generan automáticamente un servidor RPC completo, y las soluciones existentes para PB parecían ser bastante inestables. Solo mi $ 0.02.


Es posible que desee analizar su necesidad primero:

¿Necesitas un formato de protocolo agnóstico? Por ejemplo, ¿desea implementar un protocolo personalizado o necesita 100% de portabilidad? En tal caso, use PB.

Si está de acuerdo con el protocolo predeterminado de Thrift, y necesita un protocolo para empezar, por supuesto, vaya con Thrift.

Espero que esto ayude.