Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-151

Validating Avro schema parser in C

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.3.0
    • c
    • None

    Description

      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.

      Attachments

        Activity

          People

            massie Matt Massie
            massie Matt Massie
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: