You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "R. Tyler Croy" <ty...@monkeypox.org> on 2011/01/22 01:39:45 UTC

Getting started on writing a new language binding

I've been experimenting with Ada in my free time, stop laughing, I'm serious!
Anyways, I'm thinking about implementing Ada bindings for Avro so I can start
interacting with some of my Avro-based Python services.

Is there any document I should be looking at other than the specification on
avro.apache.org and maybe the Python code to start implementing?


Cheers

- R. Tyler Croy
--------------------------------------
    Code: http://github.com/rtyler
 Chatter: http://twitter.com/agentdero
          http://identi.ca/dero

Re: Getting started on writing a new language binding

Posted by Scott Carey <sc...@richrelevance.com>.
A current implementation in a language you are familiar with is always a
good place to start.  However, be aware of language differences -- python
for example doesn't have a float datatype, only double, so it has to track
that outside of the language typing system.


There have been several discussions on the dev list that might help too --
http://search-hadoop.com works great for searching for info in past
discussions.

In general, the two most tricky Avro features are Unions and Schema
resolution/evolution.
These are in many ways the most useful and powerful features of Avro.
Thinking about how to approach those ahead of time will save you time in
the log run.

Each language needs to figure out how best to represent Unions.  Most
don't have language level type-safe ways of dealing with them, but some
do: http://code.google.com/p/avro-scala-compiler-plugin/


Be aware that we have discovered recently that not all languages do schema
resolution of complicated unions consistently.


I hope that helps!

-Scott



On 1/21/11 4:39 PM, "R. Tyler Croy" <ty...@monkeypox.org> wrote:

>I've been experimenting with Ada in my free time, stop laughing, I'm
>serious!
>Anyways, I'm thinking about implementing Ada bindings for Avro so I can
>start
>interacting with some of my Avro-based Python services.
>
>Is there any document I should be looking at other than the specification
>on
>avro.apache.org and maybe the Python code to start implementing?
>
>
>Cheers
>
>- R. Tyler Croy
>--------------------------------------
>    Code: http://github.com/rtyler
> Chatter: http://twitter.com/agentdero
>          http://identi.ca/dero