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

Complete rewrite of C implementation

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.3.0
    • c
    • None

    Description

      This JIRA is for tracking what I hope will be the last C rewrite.

      This rewrite

      • removes all dependencies on APR and APR-util. Memory is managed now using reference counting. Hashes implemented using public domain code from Berkeley. List implemented using BSD license queue.h
      • uses the jansson JSON parser for parsing schemas. The Jansson parser is a high-quality JSON parser in C with an Apache-friendly MIT license
      • there is a well-defined object framework that serves both datum and schema datatypes and provides reference counting. Schemas and datum/values are no longer part of a single monolithic structure now.
      • you can now create a schema from json or by hand in code
      • updated to support the new AVRO-163 build layout
      • properly checks avro identifiers
      • probes for the endianness of the architecture in order to optimize endianness flipping, e.g. only on big-endian machines are little-endian conversions done.
      • documentation is now handled by asciidoc instead of doxygen.
      • increased number of schema unit tests
      • provides much more schema processing functionality like recursively checking for equality, checking for matches with promotion, and recursive schema copy.
      • lots of bug fixes

      This code is by no means complete. Most of the schema processing code is finished along with the primitive encoders for the binary format but I still need to complete the read/write path for complex types.

      I'm submitting this Jira to make the work public and to solicit feedback in prep for the 1.3 release.

      Attachments

        1. avro-c-1.2.0-dev.tar.gz
          692 kB
          Matt Massie
        2. AVRO-344.patch
          1.04 MB
          Matt Massie

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: