2011-02-15 23 views
15

Aunque el formato Thrift es relativamente utilizado (y el proyecto aún está activo), no he podido encontrar las especificaciones para el formato de datos subyacente. O formatos, dado que aparentemente hay al menos dos formatos; estándar uno, y formato compacto.¿Dónde está la especificación del formato Thrift?

Dado su amplio uso, espero que sea solo mi pobre google-fu, y existe una especificación o especificaciones (fuera del código fuente). Si es así, por favor comparte!

EDITAR: El código fuente de Java no es tan malo para descifrar el formato; ver TBinaryProtocol.java y TCompactBinaryProtocol.java; que contienen primitivas, llamadas por clases generadas (que amplían TBase)

EDIT2: Si bien no contiene especificaciones de formato, "the missing guide" es una buena lectura.

Respuesta

9

El formato para un mensaje de Ahorro depende del protocolo de serialización elegido. Puede serializar un objeto Thrift utilizando uno de muchos protocolos, incluido el protocolo TBinary, TCompactProtocol, TJSONProtocol y otras opciones poco claras. El protocolo se describe de forma abstracta en el Thrift Whitepaper PDF original en términos de la API, pero actualmente no está definido en ninguna parte del proyecto de apache Thrift.

El protocolo TCompactProtocol se define un poco mejor on the thrift wiki pero no en términos simples.

Hasta que haya una mejor documentación disponible, también puede examinar el código de la biblioteca de Python junto con la documentación del módulo Python struct como otra opción.

+0

Gracias. Sí, sé la diferencia entre TBinary original y TCompactProtocol. El protocolo json parece inútil, así que no me importa, pero definitivamente sería bueno tener los primeros dos. Pero leer fuentes es bastante fácil en este caso, así que eso funcionará. – StaxMan

Cuestiones relacionadas