Now that we have 1.2.0 packaged up and out the door (kudos!), I commited the
work I've been doing over the last three weeks.

------------------------------------------------------------------------
r825593 | massie | 2009-10-15 11:00:21 -0700 (Thu, 15 Oct 2009) | 3 lines

Added a validating Avro schema parser in C


This package adds a schema parser which validates the schema while
generating an intermediate tree of value objects for printing, reading,
skipping and writing avro values.  You'll notice that the C code is written
in an object-oriented fashion with clear interfaces, data encapsulation,
etc.  My primary focus at this time is to make the core source as easy to
understand and work on as possible to make it easier to add new developers
moving forward.  I plan to add a developers guide to src/c soon to help
toward that end as well.  I've separated the public API into avro.h and the
private API into avro_private.h.  You'll notice that currently there is no
public API.  Once the internals are built correctly (with better error
reporting), sketching out the public API will be easier and can focus on
usability and flexibility for consumers of Avro in C.

I'm very near to having Avro file object containers working and you can see
the code for that in the source (avro_file_container.c).  It correctly
parses the interop.avsc and reads the non-recursive elements.  My only
blocker for file containers now is support for reading recursive schemas
(I'm currently using a decorator when I should have use a factory) and the
fact that a few complex types don't have reading/writing support.  I expect
file object container support to be finished soon.

Moving forward I hope to make more incremental changes to the C code using
the public jira to inform you of changes.

-Matt

Reply via email to