Thrift格式规范在哪里?

21

尽管Thrift格式相对广泛使用(且该项目仍在维护),但我无法找到底层数据格式的规范。鉴于显然至少有两个格式;标准格式和紧凑格式,可能存在多种格式。

考虑到它被广泛使用,希望这只是我的搜索能力不足,规范或规范存在(除了源代码之外)。如果有,请分享!

编辑:Java源代码对于确定格式来说不是太难;请参见TBinaryProtocol.java和TCompactBinaryProtocol.java;它们包含原语,由生成的类调用(这些类扩展了TBase)

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

3个回答

13

1
规范现在也可以在Thrift存储库中获得:https://github.com/apache/thrift/tree/master/doc/specs - Erik van Oosten

12
Thrift消息的格式取决于所选择的序列化协议。您可以使用许多协议之一对Thrift对象进行序列化,包括TBinaryProtocol、TCompactProtocol、TJSONProtocol和其他模糊选项。该协议在原始的Thrift白皮书PDF中以API的形式抽象描述,但目前在Thrift apache项目中没有定义。
TCompactProtocol协议在thrift wiki上有稍微更好的定义,但不是简单易懂的。
在更好的文档可用之前,您还可以查看Python库代码以及Python struct模块文档作为另一种选项。

谢谢。是的,我知道TBinary和TCompactProtocol之间的区别。JSON协议似乎有点无用,所以我不关心,但肯定很好能够拥有前两者的定义。但在这种情况下,阅读源代码足够简单,所以那样做就可以了。 - StaxMan

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接