schema-salad
Schema Annotations for Linked Avro Data (SALAD)
What it is and what it does
Schema Salad is a schema language and validation framework for describing rules that govern JSON and YAML documents. It sits at the intersection of document validation and semantic web technologies, allowing you to define schemas with inheritance, object references, and rich data modeling, then validate documents against those schemas and transform them to RDF or other formats.
The package works as both a command-line tool and a Python library. From the CLI, you can validate schemas and documents, generate HTML documentation, extract JSON-LD contexts, perform code generation in multiple languages, and visualize class hierarchies. As a library, you import schema_salad to programmatically validate and transform data. It depends on requests, ruamel.yaml, rdflib, mistune, CacheControl, mypy_extensions, and rich-argparse to handle HTTP fetching, YAML parsing, RDF operations, markdown rendering, and CLI formatting.
Use it for:
- Define and validate complex data structures for scientific workflows or bioinformatics pipelines.
- Generate type-safe Python classes from a schema to load and serialize structured documents.
- Transform YAML or JSON documents into RDF triples for semantic web applications.
- Generate HTML documentation from a schema to communicate data requirements to collaborators.
- Validate incoming JSON or YAML documents against a schema before processing in a data pipeline.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Schema Salad is a schema language for validating and transforming JSON or YAML structured linked data documents, with support for preprocessing, structural validation, hyperlink checking, and code generation.
Yes. Schema Salad is actively maintained, has no known vulnerabilities, supports current Python versions, and carries a permissive license. Install it if you need to validate structured linked data, generate code from schemas, or bridge document-oriented and semantic web data modeling. The low install friction and established dependencies make it a low-risk addition. Skip it if you only need basic JSON Schema validation without RDF or code generation.
Install
schema-salad on PyPI
pip
pip install schema-saladuv
uv add schema-saladpoetry
poetry add schema-saladInstalling schema-salad
Before you install
Low install friction with a wheel distribution. The package is actively maintained with a recent release and supports current Python versions (3.10–3.14). Seven runtime dependencies are all well-established libraries.
License in practice
Licensed under Apache 2.0 (permissive), allowing use in most commercial and open-source projects without significant restriction.
Quickstart
pip install schema_salad
python -c "import schema_salad"
# Validate a schema:
schema-salad-tool myschema.yml
# Validate a document against schema:
schema-salad-tool myschema.yml mydocument.yml
Requires Python 3.10 or later. For code generation features, install with the [pycodegen] extra.
Verify before relying
- Whether the [pycodegen] extra adds significant dependencies or install friction beyond the base package.
- Performance characteristics when validating large or deeply nested documents.
- How well error messages guide users toward fixing validation failures.
Package facts
| License | Apache 2.0 (permissive) |
| Python support | supports the current Python release (<3.16,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — requests, ruamel.yaml, rdflib, mistune, CacheControl, mypy_extensions, rich-argparse |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 337,872/month — #7,443 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: schema_salad-8.10.20260814121804-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
linkmlLinkML is a modeling language for defining…
permissive · top 15,000 on PyPI
event-modelDefines and validates the formal data model for…
permissive · top 15,000 on PyPI
linkml-runtimeProvides runtime support for LinkML-generated…
permissive · top 15,000 on PyPI
pyshaclValidates RDF graphs against SHACL shape…
permissive · top 5,000 on PyPI
rdflib-jsonldProvides JSON-LD parsing and serialization for…
permissive · top 15,000 on PyPI
yamaleYamale validates YAML files against a schema…
permissive · top 5,000 on PyPI
PyLDPyLD is a Python implementation of the JSON-LD…
permissive · top 15,000 on PyPI
schemaValidates Python data structures (dicts, lists,…
permissive · top 1,000 on PyPI
jsonschemajsonschema validates Python data structures…
permissive · top 100 on PyPI
kubernetes-validateValidates Kubernetes resource definitions…
permissive · top 15,000 on PyPI