NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3714 most downloaded on PyPI
Generate Avro Schemas from Python classes. Serialize/Deserialize python instances with avro schemas
Last release 4 days ago
30 Sep 2026
Release timing varies
gaps range from 1 weeks to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
225 releases · first in 2019
deps : requests, pydantic and time-machine dependencies updated
One column per quarter.
bound the decimal precision and payload accepted from a schema
bound the sizes fake() will build for fixed and decimal fields
bound the length of the strings handed to dateutil
[master de45de0 ] bump: version 0.70.5 → 0.70.6 2 files changed, 8 insertions(+), 2 deletions(-)
[master de45de0] bump: version 0.70.5 → 0.70.6
2 files changed, 8 insertions(+), 2 deletions(-)
render null default as None in model generator
serialize records without fields to avro-json
do not mutate Meta.field_order during schema generation
bridge Pydantic decimal constraints
documentation fixed. Dependencies updated. Dependabot updated.
fields : add support for local-timestamp-micros
encode nested union records with tuple notation ( #944 ). Closes #943
fields : add support for local-timestamp-millis
Small tweaks added to immutable fields. Removed test skiping for the ones working in roundtrip
[master d70b006] bump: version 0.68.0 → 0.68.1 2 files changed, 8 insertions(+), 2 deletions(-)
pydantic: Pydantic v1 support dropped
[master 52fa371] bump: version 0.67.0 → 0.68.0 2 files changed, 12 insertions(+), 2 deletions(-)
[master c6a52b3] bump: version 0.66.4 → 0.67.0 2 files changed, 8 insertions(+), 2 deletions(-)
[master c6a52b3] bump: version 0.66.4 → 0.67.0 2 files changed, 8 insertions(+), 2 deletions(-)
Move pytest-benchmark to dev dependencies
[master 5c88f47] bump: version 0.66.3 → 0.66.4 2 files changed, 8 insertions(+), 2 deletions(-)
normalize union tuples inside lists during deserialization
[master d26e1b2] bump: version 0.66.2 → 0.66.3 2 files changed, 8 insertions(+), 2 deletions(-)
[master 92cb9af] bump: version 0.66.1 → 0.66.2 2 files changed, 8 insertions(+), 2 deletions(-)
[master 92cb9af] bump: version 0.66.1 → 0.66.2 2 files changed, 8 insertions(+), 2 deletions(-)
suppor for python3.14 added. Closes #902
[master f1236e8] bump: version 0.66.0 → 0.66.1 2 files changed, 8 insertions(+), 2 deletions(-)
[master 94e30de] bump: version 0.65.14 → 0.66.0 2 files changed, 12 insertions(+), 2 deletions(-)
[master 94e30de] bump: version 0.65.14 → 0.66.0 2 files changed, 12 insertions(+), 2 deletions(-)
Refine return type of parse_obj and deserialize to be the current class
[master 6536463] bump: version 0.65.13 → 0.65.14 2 files changed, 8 insertions(+), 2 deletions(-)
ModelGenerator: Add pass keyword when there are no fields
pass keyword when there are no fields (#891)[master 125cf16] bump: version 0.65.12 → 0.65.13 2 files changed, 8 insertions(+), 2 deletions(-)
[master 9ae4007] bump: version 0.65.11 → 0.65.12 2 files changed, 8 insertions(+), 2 deletions(-)
[master 9ae4007] bump: version 0.65.11 → 0.65.12 2 files changed, 8 insertions(+), 2 deletions(-)
ModelGenerator: Rename fields named after Python keywords
[master ec7ca6d] bump: version 0.65.10 → 0.65.11 2 files changed, 8 insertions(+), 2 deletions(-)
AvroRecord: deserialize properly union when they are encoded using avro-bynary. Related to #849
[master 73efe8a] bump: version 0.65.9 → 0.65.10 2 files changed, 8 insertions(+), 2 deletions(-)
ModelGenerator: render description when doc is present in schema and the model is pydantic related. Related to #837
[master 5c882a9] bump: version 0.65.8 → 0.65.9 2 files changed, 8 insertions(+), 2 deletions(-)
ModelGenerator: generate proper default value for a first time defined record when it has one. Closes #829
[master 0f39938] bump: version 0.65.7 → 0.65.8 2 files changed, 8 insertions(+), 2 deletions(-)
support Python 3.13 in is_annotated
[master e67006b] bump: version 0.65.6 → 0.65.7 2 files changed, 8 insertions(+), 2 deletions(-)
make sure that metadata is not deleted when schemas are calculated more than once. Closes #799
[master ade3078] bump: version 0.65.5 → 0.65.6 2 files changed, 8 insertions(+), 2 deletions(-)
serialization whit schema inheritance. Closes #800
[master f5ca713] bump: version 0.65.4 → 0.65.5 2 files changed, 8 insertions(+), 2 deletions(-)
Model and Parser protocols added
[master 5b5fd30] bump: version 0.65.3 → 0.65.4 2 files changed, 8 insertions(+), 2 deletions(-)
TimedeltaField: fix timedelta fastavro serialization so it doesn't break in union types
[master 1fecc2d] bump: version 0.65.2 → 0.65.3 2 files changed, 8 insertions(+), 2 deletions(-)
generate proper default values when reusing Enums types
[master 5e65d6c] bump: version 0.65.1 → 0.65.2 2 files changed, 8 insertions(+), 2 deletions(-)
model generatation fixed when field name and field type hint clashes on arrays and maps
[master 081d897] bump: version 0.65.0 → 0.65.1 2 files changed, 8 insertions(+), 2 deletions(-)
support timedelta serialization to double seconds
double seconds (#793)[master f6cc8e8] bump: version 0.64.2 → 0.65.0 2 files changed, 8 insertions(+), 2 deletions(-)
ModelGenerator: ModelRepresentation and EnumRepresentation added to make model generation simpler. More name clashing cases fixed
[master 7d6f2cf] bump: version 0.64.1 → 0.64.2 2 files changed, 8 insertions(+), 2 deletions(-)
[master 8db933c] bump: version 0.64.0 → 0.64.1 2 files changed, 8 insertions(+), 2 deletions(-)
[master 8db933c] bump: version 0.64.0 → 0.64.1 2 files changed, 8 insertions(+), 2 deletions(-)
generate date defaults consistently in python model generation
[master ed49882] bump: version 0.63.10 → 0.64.0 2 files changed, 8 insertions(+), 2 deletions(-)
[master dd4327d] bump: version 0.63.9 → 0.63.10 2 files changed, 8 insertions(+), 2 deletions(-)
[master dd4327d] bump: version 0.63.9 → 0.63.10 2 files changed, 8 insertions(+), 2 deletions(-)
generate proper Model when there is name clashe between field name and type hints. Closes #769
[master dcc9518] bump: version 0.63.8 → 0.63.9 2 files changed, 8 insertions(+), 2 deletions(-)
[master 46b6a67] bump: version 0.63.7 → 0.63.8 2 files changed, 8 insertions(+), 2 deletions(-)
[master 46b6a67] bump: version 0.63.7 → 0.63.8 2 files changed, 8 insertions(+), 2 deletions(-)
AttributeError exception raised when trying to generate schema from AvroModel itself and not a subclass of it. Closes #739
[master 14d657d] bump: version 0.63.6 → 0.63.7 2 files changed, 8 insertions(+), 2 deletions(-)
model generation simplified. Closes #746
[master 0a2991e] bump: version 0.63.5 → 0.63.6 2 files changed, 8 insertions(+), 2 deletions(-)
make context optional during dezerialization. Serialization utils included in docs. SerializationType included
[master 34daed3] bump: version 0.63.4 → 0.63.5 2 files changed, 8 insertions(+), 2 deletions(-)
Module schema_generator renamed to main. Some type hints improvements
[master cb33acd] bump: version 0.63.3 → 0.63.4 2 files changed, 8 insertions(+), 2 deletions(-)
serialization improvements for nested unions. Related to #763
[master cb5d127] bump: version 0.63.2 → 0.63.3 2 files changed, 8 insertions(+), 2 deletions(-)
serialiaze properly unions when types are similar. Closes #749
[master c129b96] bump: version 0.63.1 → 0.63.2 2 files changed, 8 insertions(+), 2 deletions(-)
Explicit __all__ to make mypy happy
[master 31e3724] bump: version 0.63.0 → 0.63.1 2 files changed, 8 insertions(+), 2 deletions(-)
add serialization support for AvroRecord (faust.Record). Closes #743
[master 8cf3929] bump: version 0.62.11 → 0.63.0 2 files changed, 8 insertions(+), 2 deletions(-)
Implemented nested logicalType check
[master e5ae525] bump: version 0.62.10 → 0.62.11 2 files changed, 8 insertions(+), 2 deletions(-)
scaped apostrophe when original_schema is render in model. Closes #725
[master d1145bd] bump: version 0.62.9 → 0.62.10 2 files changed, 8 insertions(+), 2 deletions(-)
fallback to native types if custom logicalTypes are defined when rendering Model. Closes #707 and closes #209
[master 5b8d980] bump: version 0.62.8 → 0.62.9 2 files changed, 8 insertions(+), 2 deletions(-)
case schemas with unions. Closes #700
[master c16d1ad] bump: version 0.62.7 → 0.62.8 2 files changed, 8 insertions(+), 2 deletions(-)
python-dateutil dependency updated in pyproject
[master 3661400] bump: version 0.62.6 → 0.62.7 2 files changed, 8 insertions(+), 2 deletions(-)
inflector dependency replaced by inflection. First steps to publish library to Conda. Related to #706
[master 1666b5b] bump: version 0.62.5 → 0.62.6 2 files changed, 8 insertions(+), 2 deletions(-)
extra option with cli added in pyproject. Requirements fixed. Closes #711
[master 8f60744] bump: version 0.62.4 → 0.62.5 2 files changed, 8 insertions(+), 2 deletions(-)
Always reuse the rendered type when type is same (#710). Closes #709
[master 81cdf28] bump: version 0.62.3 → 0.62.4 2 files changed, 8 insertions(+), 2 deletions(-)
incorrect casing when rendering fields and enums (#694). Closes #693 and #692
[master 076cd4c] bump: version 0.62.2 → 0.62.3 2 files changed, 8 insertions(+), 2 deletions(-)
Your coding agent can read these notes before it upgrades. Set up the MCP server →