odcs — Rust & Python reference implementation for ODCS
odcs validates Open Data Contract Standard (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.5.0 is on
mainand ready to publish. Push tagv0.5.0to release to crates.io and PyPI. See Release status.
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
Save a minimal contract as contract.yaml:
version: "1.0.0"
apiVersion: "v3.1.0"
kind: "DataContract"
id: "hello-contract"
status: "draft"
schema:
- name: customers
properties:
- name: customer_id
logicalType: string
required: true
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 |
| Contribute | Contributing |
| Report a security issue | SECURITY.md |
Status: Alpha pre-1.0 — see ROADMAP.md and Release status.
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. When implementation guidance conflicts with the upstream ODCS specification, the upstream specification wins.
License
Apache License 2.0. See LICENSE.