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
Add extra checks to decimal types to verify that the data will be consistent when roundtrip'ed (@matpuk in PR #461)
Remove global cache of parsed schemas. This will break existing code that relied on being able to call parse_schema to manipulate that global cache (@
One column per quarter.
Allow iterables for array type fields (@ksunden in PR #441)
Add type hints (@spenczar in PR #438)
Add compatibility fix for Python 3.4 (@dacjames in PR #436)
Fix performance regression in the writer (@scottbelden in PR #426)
Fix bug where JSON reader/writer wouldn't work with named schemas (@gudjonragnar in PR #419)
Fix some bugs in the validation where the schema was not being automatically parsed (@scottbelden in PR #417)
Add support for xz codec (@scottbelden in PR #412)
Fix bug in the JSON reader when using unions inside an array (@scottbelden in PR #400)
Add public API at fastavro.schema.expand_schema that will expand named types (@scottbelden in PR #340)
fastavro.schema.expand_schema that will expand named types (@scottbelden in PR #340)fastavro.schema.fullname that will return the fullname of a schema (@scottbelden in PR #397)Use pytz for the UTC timezone rather than our own custom one to prevent compatibility issues with pandas (@scottbelden in PR #396)
Fix pre-epoch timestamps on Windows Python 3+ (@jmgpeeters in PR #394)
Add some documentation about return_record_name
Add support for lz4 coded (@mcguipat in PR #381)
Support Python 3.8 (@scottbelden in PR #373)
Add return_record_name option to schemaless reader so that it returns the record name along with the record (@bstockton in PR #370)
return_record_name option to schemaless reader so that it returns the record name along with the record (@bstockton in PR #370)Fix bug where schema migration was not working correctly for records within an array (@scottbelden in PR #364)
Fixed bugs in decimal serialization and deserialization (@jancespivo in PR #361)
Change the way stdout is detected since buffer is not a part of the FileIO API (@scottbelden in PR #359)
buffer is not a part of the FileIO API (@scottbelden in PR #359)Fix bug where we could not validate a union with a logical type (@Artimi in PR #349)
Fix snappy compression reader (@mattomatic in PR #346)
Implement an initial json_reader and json_writer (@scottbelden in PR #343)
Allow streaming to sys.stdout.buffer on OSX without raising ValueError (@jquast in PR #342)
Accept an ISO Date as a string (@scottbelden in PR #338)
CLI tests, bugfix streaming stdin on py3, add --metadata CLI argument (@jquast PR #331)
Build 32bit wheels on Windows (@scottbelden in PR #329)
Add write_block function to the Writer class (@josephglanville in PR #324)
Make sure to always read the writer schema in the cython implementation (@scottbelden in PR #317)
Make sure True and False do not validate as an int, long, float, or double (@scottbelden in PR #316)
Fix validation for UUIDs in unions (@kkirsanov in PR #310)
Change the return type of values when promoted by the reader schema (@scottbelden in PR #307)
Deprecate schema attribute on the reader class (@scottbelden in PR #305)
Ensure maps do not validate as arrays (@scottbelden in PR #304)
Add support for user specified sync_marker values (@scottbelden in PR #301)
Fix a regression to re-enable support for reading from streams (@scottbelden in PR #297)
Fix a regression to re-enable support for writing to streams (@jquast in PR #293)
Fix an issue where an avro file written out wouldn't be readable (@scottbelden in PR #289)
Fix bug where a decimal scale was not defaulting to zero (@scottbelden in PR #283)
Add support for appending to an existing avro file (@scottbelden in PR #278)
Change the validator back so that it will accept extra fields when validating union schema (@scottbelden in PR #275)
Fix validator picking the wrong union schema (@scottbelden in PR #273)
Fix namespace issue with embedded records (@scottbelden in PR #266)
writer is not a single record (@scottbelden in PR #260)Build OSX wheels (@scottbelden in PR #255)
Check schema equality before calling match_schema (@scottbelden in PR #247)
Fix issue where supplied reader_schema wasn't being parsed (@scottbelden in PR #245)
Ensure aliases are a list (@scottbelden in PR #241)
Remove acquaint_schema and replace it with parse_schema (@scottbelden in PR #237)
acquaint_schema and replace it with parse_schema (@scottbelden in PR #237)Nothing published for this version
Remove load, dump, read_data, and write_data from the public API (@scottbelden in PR #233 and #234)
load, dump, read_data, and write_data from the public API (@scottbelden in PR #233 and #234)Change cython writer to use more cdef functions (@scottbelden in PR #228)
Fix a RuntimeError on Python 3.7 (@scottbelden in PR #220)
Implement the block_reader interface (@ryan-williams in PR #208)
Fix issue when ValidationErrorData field is None (@rhaarm in PR #212)
Fix overzealous validation errors (@ryan-williams in PR #207)
Improve error messages from validation (@rhaarm in PR #182 and @scottbelden in PR #202)
Improve performance when the reader schema matches the writer schema (@scottbelden in PR #199)
Fix reader for large value long types (@scottbelden in PR #198)
Allow numpy types for ints, longs, floats, and doubles (@NightFantomJ2 in PR #189)
Ensure records have a "name" field (@scottbelden in PR #187)
Your coding agent can read these notes before it upgrades. Set up the MCP server →