尽管Thrift格式得到了相对广泛的使用(项目仍然存在),但我还没有找到底层数据格式的规范。或者格式,因为显然至少有两种格式:标准格式和紧凑格式。
考虑到它的广泛使用,我希望它只是我可怜的google-fu,并且存在一个或多个规范(在源代码之外)。如果有,请分享!
编辑: Java源代码对于确定格式并不是太差;参见TBinaryProtocol.java和TCompactBinaryProtocol.java;它们包含由生成的类(扩展TBase)调用的原语。
EDIT2:虽然它不包含格式规范,但"the missing guide“很好读。
发布于 2016-10-04 22:53:12
我也有同样的问题,因此我决定写一份关于Thrift二进制和紧凑协议的规范。
你可以在这里找到它:https://erikvanoosten.github.io/thrift-missing-specification/
发布于 2011-04-17 23:48:30
Thrift消息的格式取决于所选的序列化协议。您可以使用多种协议中的一种来序列化Thrift对象,包括TBinaryProtocol、TCompactProtocol、TJSONProtocol和其他模糊选项。该协议在原始Thrift Whitepaper PDF中按照应用编程接口进行了抽象的描述,但目前在Thrift apache项目中没有定义。
定义为on the thrift wiki的TCompactProtocol协议稍好一些,但不是简单的术语。
在获得更好的文档之前,您还可以将Python库代码与Python struct模块文档一起作为另一种选择进行检查。
发布于 2019-07-27 18:54:42
有两种二进制编码,紧凑和非紧凑。
通常你会在野外找到紧凑的协议:
https://github.com/apache/thrift/blob/master/doc/specs/thrift-compact-protocol.md
尽管非紧凑协议可能是遗留协议:
https://github.com/apache/thrift/blob/master/doc/specs/thrift-binary-protocol.md
这是对规范的粗略概述:
https://github.com/apache/thrift/blob/master/doc/specs/thrift-protocol-spec.md
https://stackoverflow.com/questions/5009801
复制相似问题