This is great. We in the Zookeeper world would love to have c bindings for avro. Currently our serialization is based on very primitive form of recordio (in Hadoop) and we would like to replace it with something like avro.
mahadev On 4/22/09 2:46 PM, "Matt Massie" <[email protected]> wrote: > Hello Avro Developers- > > I'm interested in contributing to the Avro project and, in particular, C > bindings. I thought it would be good to introduce myself and my tentative > plan for development early on. Any feedback you can give will be welcomed. > > I plan to start by creating a simple C library for encoding/decoding the > basic Avro types (using an API very similar to XDR, e.g. avro_int, > avro_string, avro_bytes, avro_float, avro_void, etc). Unlike XDR, we also > need support for things like maps and default values. In order to make the > C code as portable as possible and provide for maps, memory pools, sockets, > etc, I'm going to use the Apache Portable Runtime (APR). Not to be too much > of a suckup here on an Apache list, but I've had really good results with > APR. :) Ganglia has been running on APR for over four years now and it made > supporting dozens of different platforms bareable. > > My initial target will be to create a C protocol compiler using the Java > code already in Avro now (in the "specific" directory). The auto-generated > code will need to be linked against libavro (with the base types) and > libapr-1 (for maps, pools, sockets, etc). While I understand that dynamic > typing is a goal (and strength) of Avro it that will have to wait for C > until later. This initial work should help make dynamic typing a > possibility later though. > > Does this sound like a reasonable plan? Should I continue pushing forward > on this or should I wait until Avro spec tightens up a little more? > > Thanks for any feedback you might have. > > Cheers! > -Matt
