2011-02-15 43 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