You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Cyber Cobra <bu...@gmail.com> on 2009/09/12 11:08:28 UTC

Thrift on Wikipedia

Hi Thrifters! (or whatever you call yourselves),

I'm a Wikipedia editor and have been working on the relatively new
article http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats
, which includes Thrift among the formats compared.
Currently, a lot of key information on Thrift's wire format is missing
from the article and I want to rectify that, but I'm not a Thrift
user. So I'm hoping you all might be able to help.

Here's the info I'm looking for:

1. Is there a specification document for Thrift (besides just the code
itself)? I was unable to locate one.
1A. If "No" for Question 1, any help filling out the row for Thrift in
the "Comparison of binary formats" table would be much appreciated.
2. Does Thrift take inspiration from or base itself on any other
formats? I don't think so, but just need to double-check.
3. Can Thrift store relational data? (i.e. can serialized objects have
"pointers" to other objects in the same "file"?)

Thanks, and apologies for the intrusion.
-- [[User:Cybercobra]]

Re: Thrift on Wikipedia

Posted by Kevin Clark <ke...@gmail.com>.
I think the closest thing to a spec we have is the original whitepaper:
http://incubator.apache.org/thrift/static/thrift-20070401.pdf

We also have a human readable version provided for some languages in
the json protocol. I'm not sure the set of languages that's available
in.

On Sat, Sep 12, 2009 at 2:08 AM, Cyber Cobra <bu...@gmail.com> wrote:
> Hi Thrifters! (or whatever you call yourselves),
>
> I'm a Wikipedia editor and have been working on the relatively new
> article http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats
> , which includes Thrift among the formats compared.
> Currently, a lot of key information on Thrift's wire format is missing
> from the article and I want to rectify that, but I'm not a Thrift
> user. So I'm hoping you all might be able to help.
>
> Here's the info I'm looking for:
>
> 1. Is there a specification document for Thrift (besides just the code
> itself)? I was unable to locate one.
> 1A. If "No" for Question 1, any help filling out the row for Thrift in
> the "Comparison of binary formats" table would be much appreciated.
> 2. Does Thrift take inspiration from or base itself on any other
> formats? I don't think so, but just need to double-check.
> 3. Can Thrift store relational data? (i.e. can serialized objects have
> "pointers" to other objects in the same "file"?)
>
> Thanks, and apologies for the intrusion.
> -- [[User:Cybercobra]]
>



-- 
Kevin Clark
http://glu.ttono.us

Re: Thrift on Wikipedia

Posted by Bruce Simpson <bm...@incunabulum.net>.
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

Re: Thrift on Wikipedia

Posted by David Reiss <dr...@facebook.com>.
> 3. Can Thrift store relational data? (i.e. can serialized objects have
> "pointers" to other objects in the same "file"?)
No.