avro-gen3
Avro record class and specific record reader generator
Decision gist · record as of 2026-08-14
Yes, with conditions. Install if you need typed Avro records with IDE support and are comfortable with a dormant package. The low install friction, permissive license, zero vulnerabilities, and top-5000 popularity make it reasonable for schema-driven workflows. However, verify compatibility with your Python version and test thoroughly before adopting in new projects, since maintenance appears stalled.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with only two runtime dependencies (avro and six).
- Maintenance is dormant—last release was 708 days ago, though the repository remains active and has no known vulnerabilities.
License · maintenance · safety
permissive license (permissive) — Apache License 2.0 (permissive): you can use, modify, and distribute this package freely in commercial and open-source projects, provided you include a copy of the license and note any changes.
last release 2024-09-05 (708 days) · last repo commit 2024-09-05 · 6 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,988,152 downloads/mo, #2,800 on PyPI
Alternatives
Verify before relying
pip install avro-gen3
from avrogen import write_schema_files
schema_json = '{"type": "record", "name": "example", "fields": [{"name": "id", "type": "long"}]}'
write_schema_files(schema_json, 'output_dir')
from avro import datafile, io
record_instance = record_class()
with open('file.avro', 'w+b') as f:
writer = datafile.DataFileWriter(f, io.DatumWriter(), schema)
writer.append(record_instance)- Whether the package works reliably with Python versions beyond 3.8 (classifiers list 3.5–3.8, but requires_python is unspecified)
- Current stability and real-world reliability given dormant maintenance status
- Whether generated classes fully integrate with avro and six without additional setup
What it is and what it does
Avro-gen3 is a code generator that converts Avro schemas and protocols into concrete Python record classes with type hints and IDE support. Instead of working with untyped dictionaries (as the standard Avro library does), it wraps the Avro DatumReader to return instances of generated classes with typed properties for each schema field. The generator creates a nested class hierarchy that mirrors Avro namespaces and produces submodules for clean imports.
The package handles logical types (date, time-millis, time-micros, timestamp-millis, timestamp-micros, decimal) out of the box and supports custom logical type processors. It generates both schema-based classes and protocol-based request types. Generated records behave as dictionaries internally, so they remain compatible with Avro's standard writers and readers, but provide schema discovery, validation, and autocomplete in your IDE.
Use it for
- Generate strongly-typed Python classes from Avro schemas to catch field errors at development time rather than runtime.
- Build data pipelines where IDE autocomplete and type hints improve developer velocity when working with Avro records.
- Create protocol-based request/response classes for Avro RPC services with full type safety.
- Serialize and deserialize Avro data files while maintaining schema validation through generated reader classes.
- Support logical types in Avro records with automatic conversion to Python types like date and decimal.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
Install if you need typed Avro records with IDE support and are comfortable with a dormant package. The low install friction, permissive license, zero vulnerabilities, and top-5000 popularity make it reasonable for schema-driven workflows. However, verify compatibility with your Python version and test thoroughly before adopting in new projects, since maintenance appears stalled.
Install
avro-gen3 on PyPI
Before you install
Low friction: pure Python wheel with only two runtime dependencies (avro and six). Maintenance is dormant—last release was 708 days ago, though the repository remains active and has no known vulnerabilities.
License in practice
Apache License 2.0 (permissive): you can use, modify, and distribute this package freely in commercial and open-source projects, provided you include a copy of the license and note any changes.
Quickstart
pip install avro-gen3
from avrogen import write_schema_files
schema_json = '{"type": "record", "name": "example", "fields": [{"name": "id", "type": "long"}]}'
write_schema_files(schema_json, 'output_dir')
from avro import datafile, io
record_instance = record_class()
with open('file.avro', 'w+b') as f:
writer = datafile.DataFileWriter(f, io.DatumWriter(), schema)
writer.append(record_instance)
Verify before relying
- Whether the package works reliably with Python versions beyond 3.8 (classifiers list 3.5–3.8, but requires_python is unspecified)
- Current stability and real-world reliability given dormant maintenance status
- Whether generated classes fully integrate with avro and six without additional setup
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesavrosix |
| Maintenance | Dormant 708 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,988,152 / month, #2,800 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8 |
Evidence: avro_gen3-0.7.16-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “avro schema code generator”
- avro-gen3Generates typed Python record classes and a reader from Avro schemas,…
- avro-genGenerates typed Python record classes and a reader from Avro schemas…
- datamodel-code-generatorGenerates Python data models (Pydantic, dataclasses, TypedDict,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also avro-gen · avro-validator · pandavro · dataclasses-avroschema · pydantic-avro · fastavro · py-avro-schema · avro-python3 · confluent_avro · jschema-to-python