NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #589 most downloaded on PyPI
Fast read/write of AVRO files
Last release 5 months ago
24 Apr 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
15 years old
213 releases · first in 2012
Publish wheels for Windows ARM64 (@Harishmcw)
Publish Python 3.14 Wheels (@billy-doyle)
Improve performance for schema resolution (@hwse)
One column per quarter.
Removed invalid trove classifier (@scottbelden)
Publish Python 3.13 free-threaded wheels (@scottbelden in PR #844)
Parametrize some generic types to avoid type checker warnings (@shoffmeister in PR #798)
Fix regression introduced in PR #792 (@enifsieus in PR #796)
Fix deterministic output for gen_many under certain conditions (@hwse in PR #784)
Fix recursion error with avro json serialization (@marcosschroh in PR #773)
Fix bug where aliases were not be evaluated correctly (@hwse in PR #751)
Be able to generate correct random data when logical types are involved (@hwse in PR #741)
Allow arbitrary ordering of union fields when a default is present (@jvansanten in PR #738)
Make reader options work in a union with a reader schema (@scottbelden in PR #734)
Add deprecation about using python-snappy (@scottbelden in PR #725)
Support Python 3.12 (@scottbelden in PR #709)
Add return_named_type and return_named_type_override (@scottbelden in PR #710)
Fix issue with aliasing referenced schemas (@SerikDM in PR #704)
* Pin Cython<3 to fix breakage
Add ability to override unicode decode errors (@scottbelden in PR #696)
Fix parsing of namespaces (@scottbelden in PR #692)
Create musllinux wheels (@scottbelden in PR #679)
Allow default value errors when a reader schema is supplied (@scottbelden in PR #677)
Allow ints for default values of float and double types (@scottbelden in PR #670)
Add support for Python 3.11 (@scottbelden in PR #652)
Fix a bug where the strict options were not catching extra fields (@scottbelden in PR #639)
Add option to disable tuple notation (@scottbelden in PR #634)
Add options for "strict" and "strict_allow_default" when calling writer functions (@scottbelden in PR #628)
Add return_record_name_override option that will override the return_record_name option for unions that contain no more than one record (@untereiner i
Add support for custom JSON Encoders and Decoders (@scottbelden in PR #618)
Fix bugs when appending (@scottbelden in PR #608)
Improve type hints (@scottbelden in PR #606)
Fix issue where custom logical types were not working for the json_reader (@arop in PR #598)
When appending, one can now just supply None as the schema (@scottbelden in PR #586)
Add ability to load schemas stored in any directory structure rather than needing all schemas to exist in the same folder (@SerikDM in PR #582)
Allow decompressing zstandard stream blocks (@kristianlm in PR #575)
Fix issue with json decoding of complex types within maps (@scottbelden in PR #573)
Add support for Python 3.10 (@scottbelden in PR #562)
Use the compression level specified when using the zstandard codec (@scottbelden in PR #567)
Fixes a bug where old avro files could not be read using a modern version of fastavro (@aserednyakov in PR #561)
Add option to write unions without type hint in the JSON output (@gudjonragnar in PR #555)
No changes; new version to build wheels that were missing from the 1.4.2 release
Validate enum symbols according to the specification (@pawelrubin in PR #552)
Fix schema expansion of parsed schemas (@srfc in PR #541)
Fix bug where load_schemas would not work with top level names (@scottbelden in PR #535)
load_schemas would not work with top level names (@scottbelden in PR #535)named_schemas argument part of the public API (@scottbelden in PR #532)validate and validate_many should not force schema parsing but instead use the ability of parse_schema to detect if the schema needs to be parsed (@sc
validate and validate_many should not force schema parsing but instead use the ability of parse_schema to detect if the schema needs to be parsed (@scottbelden in PR #529)More strictly ensure that fixed type schemas match size during schema resolution and that only the specified number of bytes is written (@scottbelden
Fix bug where named types were not being resolved correctly (@scottbelden in PR #517)
Fix bug where the schema type was not being evaluated correctly when writing a union with the tuple notation (@scottbelden in PR #510)
Implement low level skip functions to improve reading a subset of a record (@scottbelden in PR #504)
New load_schema_ordered API that works similar to load_schema but allows the user to specify where all the schema files are rather than needing them a
Fix two bugs in load_schema where the sub-schemas were not being injected correctly (@scottbelden in PR #495)
Fix bug where fully resolved enums and fixed types were not being handled when fixing schemas (@scottbelden in PR #492)
Fix bug where namespaces were not resolved when loading schemas (@scottbelden in PR #491)
Fix bug with schema evolution in unions (@scottbelden in PR #487)
Change load_schema so that if the initial schema is a single record, the resulting schema will also be a single record (previously it would become a u
Build wheels for ARM64 (@AWSjswinney in PR #475)
Dropped support for Python 3.5 and added support Python 3.9 (@scottbelden in PR #474)
Nothing published for this version
Dropped support for Python 2 (@scottbelden in PR #449)
Support array.array as input for avro array type (@fthyssen in PR #455)
Your coding agent can read these notes before it upgrades. Set up the MCP server →