# Dataclasses Avro Schema

A Python library that generates Avro schemas from dataclasses, Pydantic models, and Faust records, and serializes or deserializes instances against those schemas.

Dataclasses Avro Schema generates Avro schemas from Python dataclasses, Pydantic models, and Faust Records, and can also generate code from existing Avro schemas. It serializes and deserializes Python instances to and from Avro and Avro-JSON payloads, and integrates with Pydantic by replacing BaseModel with its own AvroBaseModel.

The library ships example projects for streaming with Kafka, using both an async aiokafka client and the synchronous kafka-python driver with Avro-JSON serialization and FULL-compatibility schema evolution, as well as Redis Streams examples using walrus and redisgears-py. An optional factory feature, enabled through the faker extra, generates fake instances for testing data pipelines.

It requires Python 3.10 or newer, installs via pip or poetry, and offers optional extras for Pydantic, Faust, faker-based fixtures, and a dc-avro command-line interface.

Website: https://marcosschroh.github.io/dataclasses-avroschema/
