Avro
  1. Avro
  2. AVRO-151

Validating Avro schema parser in C

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.3.0
    • Component/s: c
    • Labels:
      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.

        Activity

        Matt Massie created issue -
        Matt Massie made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Doug Cutting made changes -
        Fix Version/s 1.3.0 [ 12314318 ]
        Doug Cutting made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Matt Massie
            Reporter:
            Matt Massie
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development