For those of you who don't have git, forrest, *and* Java 5
(not 6! 5!) installed, I built the docs and put them online:

http://www.projectornation.com/avro-doc/spec.html

AFAICT, the main differences from Thrift are:

- No code generation.  The schema is all in JSON files that are parsed
  at runtime.  For Python, this is probably fine.  I'm not really clear
  on how it looks for Java (maybe someone can look at the Java tests and
  explain it to the rest of us).  For C++, this will definitely make
  the avro objects feel clunky because you'll have to access properties
  by name.  And the lists won't be statically typed.
- The full schema is included with the messages, rather than having
  field ids delimit the contents.  This is nice for big Hadoop files
  since you only include the schema once.  (It was a technique that
  we discussed for Thrift.)  For a system like (I guess) Hadoop that
  has long-lived RPC connections with multiple messages passed, I guess
  it is not that big of a deal either.  For a system like we have at
  Facebook where the web server must connect to the feed/search/chat
  server once for each RPC, it is a killer.

--David



Bryan Duxbury wrote:
> Indeed, I am very curious about how this differs from Thrift.
> 
> On Apr 2, 2009, at 7:48 PM, Kevin Clark wrote:
> 
>> Reposting from thrift-user.
>>
>> On Thu, Apr 2, 2009 at 7:19 PM, Jeff Hammerbacher  
>> <[email protected]> wrote:
>>> See http://markmail.org/thread/7cgrwoc4er4mr3bp
>>>
>> Is this a vote of no confidence on Doug's part? Last I heard, he was
>> still one of our mentors, and this project sounds an awful lot like
>> Thrift.
>>
>>
>>
>> -- 
>> Kevin Clark
>> http://glu.ttono.us
> 

Reply via email to