avro-validator
Pure python avro schema validator
Decision gist · record as of 2026-08-14
Yes, if you work with Avro schemas and need better error messages than the standard library provides. The package is lightweight, has no dependencies, and is permissively licensed. However, note that maintenance is dormant (last release 2022-07-26); if you need active support or encounter bugs with newer Avro features, consider whether the project's age is acceptable for your use case.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6 or later.
- Low install friction with no runtime dependencies.
- Maintenance is dormant—last release was 2022-07-26, though the repository remains active and the package supports current Python versions (>=3.6).
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) allows commercial and private use with minimal restrictions.
last release 2022-07-26 (1480 days) · last repo commit 2023-09-27 · 29 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 81,587 downloads/mo, #14,215 on PyPI
Alternatives
Verify before relying
from avro_validator.schema import Schema
import json
schema = Schema(json.dumps({
'name': 'test',
'type': 'record',
'fields': [{'name': 'id', 'type': 'int'}]
}))
parsed = schema.parse()
parsed.validate({'id': 123}) # Returns True if valid- Whether the package handles nested Avro types (unions, arrays, maps) with the same level of error detail.
- Performance characteristics when validating large or deeply nested schemas.
- Active maintenance status and responsiveness to bug reports given dormant release cycle.
What it is and what it does
Avro Validator is a pure-Python library for validating data against Avro schemas. Unlike the default Avro library for Python, which returns only a generic 'datum is not an example of the schema' error, this package pinpoints exactly which field failed validation and why—making it much easier to debug data compliance issues in larger schemas.
The library works both as a command-line tool and as a Python library. You can load a schema from a file or pass it as a JSON string, then call validate() on your data. If validation passes, it returns True; if it fails, it raises a ValueError with a detailed message showing the field path, the invalid value, and the type mismatch. Schema parsing itself also validates against Avro specifications and reports clear errors for malformed schemas.
Use it for
- Debug data validation failures in data pipelines by identifying exactly which field and value caused the schema mismatch.
- Validate incoming JSON or dict data against Avro schemas before writing to a data lake or message queue.
- Develop Avro schema definitions interactively, catching schema syntax errors early with detailed parse-time messages.
- Batch-validate files from the command line using the avro_validator CLI tool without writing Python code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with Avro schemas and need better error messages than the standard library provides.
The package is lightweight, has no dependencies, and is permissively licensed. However, note that maintenance is dormant (last release 2022-07-26); if you need active support or encounter bugs with newer Avro features, consider whether the project's age is acceptable for your use case.
Install
avro-validator on PyPI
Before you install
Low install friction with no runtime dependencies. Maintenance is dormant—last release was 2022-07-26, though the repository remains active and the package supports current Python versions (>=3.6).
Requires Python 3.6 or later.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions.
Quickstart
from avro_validator.schema import Schema
import json
schema = Schema(json.dumps({
'name': 'test',
'type': 'record',
'fields': [{'name': 'id', 'type': 'int'}]
}))
parsed = schema.parse()
parsed.validate({'id': 123}) # Returns True if valid
Verify before relying
- Whether the package handles nested Avro types (unions, arrays, maps) with the same level of error detail.
- Performance characteristics when validating large or deeply nested schemas.
- Active maintenance status and responsiveness to bug reports given dormant release cycle.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 1,480 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 81,587 / month, #14,215 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: avro_validator-1.2.1-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 validation”
- avro-validatorValidates Python data against Avro schemas and reports detailed,…
- pydantic-avroConverts between pydantic class definitions and Apache Avro schemas…
- py-avro-schemaGenerates Apache Avro schemas from Python dataclasses and Pydantic…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also schema · avro-gen3 · yamale · avro-gen · pydantic-avro · swagger-spec-validator · kcidb-io · py-avro-schema · zcbor · voluptuous