DTCS — Data Transformation Contract Standard
DTCS is a draft standard and toolkit for writing vendor-neutral data transformation contracts in YAML/JSON — the semantics of transforms, not a Spark, Polars, or SQL engine.
Status: Spec 1.0.0-draft · Tools 0.11.0 (alpha). Good for validation, compatibility analysis, and conformance research — not a production ETL runtime.
Documentation · Getting started · Adoption · Examples · Changelog · Security
Try it (no clone)
Requirements: Python 3.9+ for PyPI wheels, or Rust 1.75+ for cargo install (compile can take several minutes).
# → dtcs 0.11.0
# → spec 1.0.0-draft
# → valid
# → exit 0
Or paste the same file from examples/minimal.dtcs.yaml. Contracts must set dtcsVersion: "1.0.0" exactly (the Spec itself is still 1.0.0-draft).
Bindings: Python (pip install dtcs), WASM (@eddiethedean/dtcs-wasm), Node (@eddiethedean/dtcs). See docs/api/.
What this repository contains
- SPEC.md — normative DTCS 1.0 draft (26 chapters + Appendix A)
- Reference tools — parse, validate, analyze, plan, optimize, match, compile, and run contracts (Rust CLI + Python; limited WASM/Node surface)
| Spec status | Draft (1.0.0-draft) |
| Reference tools | 0.11.0 (alpha) — validator through reference runtime and conformance |
Document dtcsVersion |
Must be exactly 1.0.0 today (patch versions are rejected) |
Coverage tables labeled “Covered” or “Complete” mean the reference implementation exercises that draft SPEC area, not that DTCS 1.0 is finalized or production-certified.
Next steps (after valid)
Clone for richer examples and fixtures (PyPI wheels do not include examples/ or tests/):
| Goal | Where |
|---|---|
| Concepts in two pages | docs/user/concepts.md |
| Write contracts | docs/user/writing-contracts.md |
| CLI reference | docs/user/cli-guide.md |
| Upgrade from 0.10.x | docs/user/migration-0.11.md |
| Evaluate for your org | docs/adoption/overview.md |
Develop from source
Requires Rust + maturin. See CONTRIBUTING.md.
Repository layout
| Path | Purpose |
|---|---|
| SPEC.md | Full DTCS 1.0 draft specification |
| docs/user/ | User guides |
| docs/adoption/ | Evaluator / security materials |
| docs/api/ | Python, Rust, WASM, Node API docs |
| docs/implementation/ | Reference implementation design guides |
| examples/ | Sample contracts |
| src/ | Rust crate (dtcs) |
| python/ | Python package |
| ROADMAP.md | Implementation milestones |
Contributing
See CONTRIBUTING.md and CODE_OF_CONDUCT.md. Security reports: SECURITY.md. When guidance conflicts with the specification, SPEC.md wins.
License
Licensed under the Apache License, Version 2.0. See LICENSE.