Reference implementation of the Open Data Contract Standard (ODCS)
Project description
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.7.0 is on
mainand ready to publish. Push tagv0.7.0to release to crates.io and PyPI. See Release status.
Install → validate in 60 seconds:
cargo install odcs # or: pip install pyodcs
odcs validate contract.yaml
Until v0.7.0 is published, unpinned installs from crates.io/PyPI may serve 0.6.0. Pin 0.7.0 or install from source — see Release status.
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
odcs validate contract.yaml # prints: valid
From code:
import pyodcs
report = pyodcs.parse_and_validate(open("contract.yaml", "rb").read(), format="yaml")
assert pyodcs.is_valid(report)
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyodcs-0.7.0.tar.gz.
File metadata
- Download URL: pyodcs-0.7.0.tar.gz
- Upload date:
- Size: 133.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9832ab6fbdbdd3b53fbc8328d36492f5b98b294ee494f8b22ef05a31af016b62
|
|
| MD5 |
7dc4c5f1f9dc528978f783cf2f71a85b
|
|
| BLAKE2b-256 |
26446705a62ce6629bcfc7acec3b8659d163507b6eb7935cfe2fb6aed5136f04
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-win_arm64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-win_arm64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.9+, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d3f00ea64db897891e2a2be79e83b9f7d982d576980605f709adf2e1f1afbc9
|
|
| MD5 |
24d59bc448d884ee5fd386c9e98f6033
|
|
| BLAKE2b-256 |
3a3a8b8cf31ed82c4a8dedd713aeb3945d372a87f6ca667cb9f5ac46f2bc6175
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7b641e646fab07b1a357a51a1040b34118331087b1bc56773f7df56bdfbacbc
|
|
| MD5 |
dd0268bb0b0061bbcd2b33cd27ddf6e4
|
|
| BLAKE2b-256 |
03d90ca55ea92c5406d3519e92d781bcccd268e3986cc4d462e8b05fb388382e
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-win32.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-win32.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cafbff64e1a772ea038b88e1f74acb614c891882bf3bf9d58e10741060e9be00
|
|
| MD5 |
bcf28cb48082c1d3777a52f86fb5f12f
|
|
| BLAKE2b-256 |
96b507b79cf8da266f1cc1c024aff8ec8101b484da4cca8d536befe24e2ace24
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18d1496c28052c0be633233cb8fff229f73218037b4bd79e95c788a74823606d
|
|
| MD5 |
f64fffbadc82585b317d4889a2a06950
|
|
| BLAKE2b-256 |
6ce4c7795136de5decf1b1ee05e3b03eb019c53023fabcd91f664e2a4eee85ea
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0605ea8f160ebc1ca6462cbcc9d6aecaecbbd5303a378bfaa7696902eac76ad3
|
|
| MD5 |
340df5d5e5b354022ce3957f7c8b6305
|
|
| BLAKE2b-256 |
8b3766dfee417cb0c0d9e6547426937732d544f2fc90cdee91575a55031ff359
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
512480d0f36a20262363a3fded3d07b7a163bf3ad08d50a33ff6c39dfe562db0
|
|
| MD5 |
3004a181b081e1aa9007d8803d5b193d
|
|
| BLAKE2b-256 |
b2327913da00d5d22f54618525381d7645d74fea8190c5738952845394bbb01e
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8918e015060531347218577327179e55c7e3bfc1edae23706730324b57cfd7ee
|
|
| MD5 |
ab200de5bcff0a23d29ce367714852ce
|
|
| BLAKE2b-256 |
94449eff36674c4ea24927b4cbdce1942a626562189003fd9052c36150b191e3
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.9+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57c80f14f59e23dba670d5e3e121f0a0ccf29732e453b045b38683ea37bd576d
|
|
| MD5 |
a30ef708b5523a7efddf51194124b130
|
|
| BLAKE2b-256 |
baeb98ebe3c3bfed10799dc287450ea2ebe9c5aabed43b7cd00404163b1f4337
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3fb7a0e6300af8c579aed3997efc922bc38cab39db0c29f9a121e29df3f3d73
|
|
| MD5 |
ea6ec25ef1e73663dbf12cd5a886e954
|
|
| BLAKE2b-256 |
4df5d59400bbffe00b6331cb905f5e30b3d5b95d69892a59c4a97e405fc8592f
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a5ac37a9941026bc2c0d6bc5330d24c80172df7af8934c38ba9a63d979941b8
|
|
| MD5 |
b7ec661917b9d2928282266569aa3667
|
|
| BLAKE2b-256 |
6eadfd1c26d522072357fd74b5087cb02198b8017b3a2b93b944e36a774553ec
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f40bb9f2b8864cde89dd804ad319a38fcc07841c41d26783685384a5d6e8bd4
|
|
| MD5 |
edf3fa3cf2b1e2c8ece43d3493dc8d67
|
|
| BLAKE2b-256 |
0f0dc4ac44d7d96f03eb6f8fca9e0617159b357abc775a94a970f6b0ab8cb2d4
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06f8ee94242c848101fb042bc55d947dc28455912e892b8206302a7977abbcc0
|
|
| MD5 |
448e0ecd087f0655819788981f3f6a9a
|
|
| BLAKE2b-256 |
af5c67158fbff2f4cb74dd019a4fc1ebc91bdde0147141a2e1f6346d586f9a67
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a065a2bde3fe20527028a5dadb05acf56e2834895f4ef2fccef57ec13c63eb8
|
|
| MD5 |
29fdbe793f64d2c4251dd8f80d80b278
|
|
| BLAKE2b-256 |
3573370cc18f0140e8f761dba7c469dc243444bd37e5d771461509b25f1e947b
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a331adecd0b1b3c4ff598a434e3b0c737bd6458ddfe60b9c2b1b36168c5d3765
|
|
| MD5 |
9fe50cb64b1b0098ab24038ec1ca959c
|
|
| BLAKE2b-256 |
1fd89264e6c1b62b0f78fae3d9cc94358162bd0d3783fbd14d8d9cce68d37177
|
File details
Details for the file pyodcs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pyodcs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dab80b7e3c4a416f3c3f9de976e0f38f1edfbffc72e417cdfdd80f33b02df3fd
|
|
| MD5 |
4a6ff9227b298531c18cc817de0c3a97
|
|
| BLAKE2b-256 |
6fcdff277bad75c48c6a9be390e25f05be369f20487112f14aecbdc960a128ba
|