dataclasses-avroschema
Generate Avro Schemas from Python classes. Serialize/Deserialize python instances with avro schemas
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and solves a real problem for teams using Avro serialization with Python. The MIT license is permissive. Install it if you need to work with Avro schemas in Python—either to generate them from your type definitions or to serialize/deserialize Avro data.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction install with a pure-Python wheel.
- Actively maintained with a recent release 9 days ago.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions—suitable for most projects.
last release 2026-08-05 (9 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,330,521 downloads/mo, #4,047 on PyPI
Alternatives
Verify before relying
from dataclasses import dataclass
from dataclasses_avroschema import AvroModel
@dataclass
class User(AvroModel):
name: str
age: int
print(User.avro_schema())
user = User(name="john", age=20)
print(user.serialize())- Performance characteristics when serializing large nested structures or high-volume message streams.
- Compatibility guarantees with specific Avro specification versions beyond 1.8.2.
- Whether the pydantic, faust, faker, and cli extras are production-ready or still experimental.
What it is and what it does
Dataclasses Avro Schema bridges Python type definitions and Apache Avro serialization. It lets you define data structures as standard Python dataclasses or Pydantic models and automatically generates corresponding Avro schemas—the binary format specification that Avro uses for efficient, language-agnostic serialization. The package then handles bidirectional conversion: serialize Python instances to compact Avro binary or human-readable Avro-JSON, and deserialize those formats back into typed Python objects or dictionaries.
The package is built on top of fastavro for the actual binary encoding/decoding, and integrates with dacite and inflection to handle type mapping and naming conventions. It supports complex nested structures, enums, optional fields, defaults, and metadata like namespaces and aliases. Optional extras let you extend it to work with Pydantic models or Faust streaming records, or add code generation and test data capabilities.
Use it for
- Serialize Python dataclass instances to Avro binary for storage in Kafka topics or data lakes.
- Generate Avro schemas from Pydantic models to document and validate API request/response contracts.
- Deserialize Avro messages from a streaming platform back into typed Python objects for type-safe processing.
- Convert between Python dataclasses and Avro-JSON for human-readable debugging or REST API payloads.
- Define a single Python dataclass and automatically generate schema documentation for cross-team data contracts.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has low install friction, carries no known vulnerabilities, and solves a real problem for teams using Avro serialization with Python. The MIT license is permissive. Install it if you need to work with Avro schemas in Python—either to generate them from your type definitions or to serialize/deserialize Avro data.
Install
dataclasses-avroschema on PyPI
Before you install
Low friction install with a pure-Python wheel. Actively maintained with a recent release 9 days ago. Requires Python 3.10 or later.
Requires Python 3.10 or later.
License in practice
MIT license permits commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
from dataclasses import dataclass
from dataclasses_avroschema import AvroModel
@dataclass
class User(AvroModel):
name: str
age: int
print(User.avro_schema())
user = User(name="john", age=20)
print(user.serialize())
Verify before relying
- Performance characteristics when serializing large nested structures or high-volume message streams.
- Compatibility guarantees with specific Avro specification versions beyond 1.8.2.
- Whether the pydantic, faust, faker, and cli extras are production-ready or still experimental.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 6 packagescasefydacitefastavroinflectionpython-dateutiltyping-extensions |
| Maintenance | Actively maintained 9 days since the last release |
| First released | |
| Downloads | 1,330,521 / month, #4,047 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development |
Evidence: dataclasses_avroschema-0.70.5-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 generation from dataclasses”
- dataclasses-avroschemaGenerates Avro schemas from Python dataclasses, Pydantic models, and…
- py-avro-schemaGenerates Apache Avro schemas from Python dataclasses and Pydantic…
- 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 datamodel-code-generator · py-avro-schema · apischema · pydantic-avro · dataclasses-jsonschema · avro-gen3 · avro-gen · jsonschema-pydantic-converter · warchant_dc_schema · avro-python3