2011-02-15 19 views
15

हालांकि त्रिज्या प्रारूप अपेक्षाकृत व्यापक रूप से उपयोग किया जाता है (और परियोजना अभी भी जीवित है), मैं अंतर्निहित डेटा प्रारूप के लिए विनिर्देश नहीं ढूंढ पा रहा हूं। या स्वरूप, यह देखते हुए कि कम से कम दो प्रारूप हैं; मानक एक, और कॉम्पैक्ट प्रारूप।थ्रिफ्ट प्रारूप विनिर्देश कहां है?

अपने व्यापक उपयोग को देखते हुए मुझे उम्मीद है कि यह सिर्फ मेरा खराब Google-fu है, और एक विनिर्देश या विनिर्देश मौजूद हैं (स्रोत कोड के बाहर)। यदि हां, तो कृपया साझा करें!

संपादित करें: जावा स्रोत कोड प्रारूप को समझने के लिए बहुत बुरा नहीं है; TBinaryProtocol.java और TCompactBinaryProtocol.java देखें; जिसमें जेनरेटेड क्लासेस (जो टीबीएएस का विस्तार करता है) द्वारा बुलाया गया प्राइमेटिव होता है,

EDIT2: हालांकि इसमें प्रारूप स्पेक नहीं है, "the missing guide" अच्छी पढ़ाई है।

उत्तर

9

एक थ्रिफ्ट संदेश के लिए प्रारूप चयनित क्रमबद्ध प्रोटोकॉल पर निर्भर करता है। आप TBinaryProtocol, TCompactProtocol, TJSONProtocol, और अन्य अस्पष्ट विकल्पों सहित कई प्रोटोकॉल का उपयोग करके एक थ्रिफ्ट ऑब्जेक्ट को क्रमबद्ध कर सकते हैं। एपीआई के संदर्भ में प्रोटोकॉल को मूल Thrift Whitepaper PDF में संक्षेप में वर्णित किया गया है, लेकिन वर्तमान में थ्रिफ्ट अपाचे प्रोजेक्ट में कहीं भी परिभाषित नहीं किया गया है।

टीकॉमपैक्टप्रोटोकॉल प्रोटोकॉल थोड़ा बेहतर परिभाषित on the thrift wiki है लेकिन सरल शब्दों में नहीं है।

बेहतर दस्तावेज उपलब्ध होने तक, आप पाइथन struct मॉड्यूल दस्तावेज़ के साथ पाइथन लाइब्रेरी कोड को अन्य विकल्प के रूप में भी देख सकते हैं।

+0

धन्यवाद। हां, मुझे मूल टीबीनरी और टीकंपैक्टप्रोटोकॉल के बीच अंतर पता है। जेसन प्रोटोकॉल बेकार लगता है इसलिए मुझे परवाह नहीं है, लेकिन निश्चित रूप से पहले दो के defs होना अच्छा लगेगा। लेकिन इस मामले में स्रोतों को पढ़ने में काफी आसान है ताकि काम करे। – StaxMan

5

मुझे एक ही समस्या थी और इसलिए थ्रिफ्ट बाइनरी और कॉम्पैक्ट प्रोटोकॉल का एक विनिर्देश लिखने का फैसला किया।

आप इसे यहां पा सकते हैं: https://erikvanoosten.github.io/thrift-missing-specification/