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-163build 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.