cavro
An Avro serializer/deserializer for python written in cython. https://stestagg.github.io/cavro/
Functionality
Basic
- Parse Schema json
- Non-core attributes
- name resolution
- namespaced name resolution
Basic schema support
- Null
- Union array
- boolean
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Value Reading (Binary encoding)
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Value Writing (Binary encoding)
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Value Reading (Json encoding)
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Value Writing (Json encoding)
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Schema Validation
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
Canonical form
- Null
- bool
- int
- long
- float
- double
- bytes
- string
- record
- fixed
- enum
- array
- map
- fingerprinting
- md5, sha256
- rabin
Container format
- basic reading
- read schema
- read objects
- Write container
- null schema
- deflate support
- snappy support
- Improved reader error handling
- Snappy checksum validation
Logical Types
- Decimal
- Date
- Time (millis)
- Time (micros)
- Timestamp (millis)
- Timestamp (micros)
- Duration
Other
- writing array & maps by chunk