2011-02-15 41 views
15

虽然Thrift格式的使用相对广泛(并且项目仍然存在),但我一直无法找到底层数据格式的规范。或格式,因为显然至少有两种格式;标准格式和紧凑格式。Thrift格式规范在哪里?

鉴于其广泛的用法,我希望它只是我可怜的google-fu,并且存在规范或规范(源代码之外)。如果是这样,请分享!

编辑:Java源代码是不是太糟糕了搞清楚格式;请参阅TBinaryProtocol.java和TCompactBinaryProtocol.java;其中包含基元,由生成的类调用(它扩展了TBase)

EDIT2:虽然它不包含格式规范,但“the missing guide”是很好的阅读。

回答

9

Thrift消息的格式取决于选择的序列化协议。您可以使用多种协议之一来序列化一个Thrift对象,包括TBinaryProtocol,TCompactProtocol,TJSONProtocol和其他不明确的选项。该协议在原始的Thrift Whitepaper PDF中以API的形式抽象描述,但目前在Thrift apache项目中没有定义。

TCompactProtocol协议稍微好一些定义on the thrift wiki但不是简单的说法。

在更好的文档可用之前,您还可以检查Python库代码以及Python struct模块文档作为另一个选项。

+0

谢谢。是的,我知道原始TBinary和TCompactProtocol之间的区别。 JSON协议似乎有点没用,所以我不在乎,但肯定会很高兴有前两个defs。但在这种情况下阅读资源很容易,这样就可以工作。 – StaxMan 2011-04-18 21:27:49