Cyber Cobra wrote:
... 1. Is there a specification document for Thrift (besides just the code itself)? I was unable to locate one.
The wire-level protocol is documented in doc/thrift.bnf in the source tree, in Backus-Naur format.
Most of the Thrift protocols use some derivation of this -- TBinaryProtocol is probably the most direct reflection of it. The other protocols (e.g. TCompactProtocol., TDenseProtocol) try to optimize for space in some way.
TDenseProtocol needs language reflection support, as it abbreviates the type fields so as only to send them once, if possible. The C++ generator injects these in the form of TypeSpecs.
2. Does Thrift take inspiration from or base itself on any other formats? I don't think so, but just need to double-check.
The closest relative is probably Pillar, but this similarity is purely conceptual.
cheers, BMS
