Validating Avro schema parser in C
----------------------------------
Key: AVRO-151
URL: https://issues.apache.org/jira/browse/AVRO-151
Project: Avro
Issue Type: New Feature
Components: c
Reporter: Matt Massie
Assignee: Matt Massie
This Jira is for tracking commit r825593 "Added a validating Avro schema parser
in C"
This commit 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.