odcs — Rust & Python reference implementation for ODCS
Reference implementation, not the specification. This repo validates ODCS documents. The normative Open Data Contract Standard (ODCS) is maintained by Bitol.
odcs validates ODCS YAML/JSON files locally and in CI.
It checks that your contract document is well-formed and conforms to ODCS v3.1.0 — schema, quality rules, SLAs, ownership, and server metadata. It does not run quality checks against live data.
Release: 0.9.1 on
main(0.9.0 on crates.io and PyPI until v0.9.1 ships). 1.0.0 stabilization is complete onmain, pending release tag and registry publish — see Release status and API stability policy.
Install → validate in 60 seconds:
New to ODCS? Read What is ODCS? first.
| Upstream ODCS | 3.1.0 |
| Rust crate | odcs |
| Python package | pyodcs |
| Documentation | odcs.readthedocs.io |
| Rust API docs | docs.rs/odcs |
Quick start
Copy examples/minimal.odcs.yaml or save as contract.yaml (.yaml and .odcs.yaml both work):
version: "1.0.0" # your contract revision
apiVersion: "v3.1.0" # ODCS spec release — not the same as version
kind: "DataContract"
id: "hello-contract"
status: "draft"
schema:
- name: customers
logicalType: object
properties:
- name: customer_id
logicalType: string
required: true
On failure, diagnostics include stable codes and paths:
[error] odcs:invalid-kind: expected kind 'DataContract', got 'WrongKind'
at: kind
See Diagnostics and Troubleshooting.
From code:
=
assert
Full walkthrough: Getting started · Installation
Documentation
Full docs: odcs.readthedocs.io
| I want to… | Read |
|---|---|
| Learn what ODCS is | What is ODCS? |
| Get started in 5 minutes | Getting started |
| Install Rust or Python | Installation |
| Choose the right API | API decision guide |
| Use the CLI | CLI |
| Integrate in CI/CD | CI/CD |
| Fix validation errors | Troubleshooting |
| Browse examples | Examples |
| Local registry & cross-file refs | Local registry · examples/registry/ |
| Compare contract revisions | Compatibility analysis |
| Contribute | Contributing |
| Upstream sync policy (maintainers) | SPEC.md |
| Report a security issue | SECURITY.md |
Status: 0.9.1 on main (0.9.0 published); 1.0 stabilization complete, pending release — Release status · API stability · ROADMAP.md
This repository implements the standard; it is not the ODCS specification itself.
Pipeline
ODCS Document → Parser → Canonical Object Model → Validator → Diagnostics
Execution, pipeline composition, and transformation semantics are out of scope. See non-goals.
Contributing
See CONTRIBUTING.md. Run ./scripts/check.sh before opening a PR. When implementation guidance conflicts with the upstream ODCS specification, the upstream specification wins.
License
Apache License 2.0. See LICENSE.