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 3.0.0 (draft) · Tools 0.13.0 (alpha). Good for validation, compatibility analysis, portable relational profiles, and conformance research — not a production ETL runtime.
Documentation · Getting started · What DTCS is not · 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.13.0
# → spec 3.0.0
# → valid
# → exit 0
Or paste the same file from examples/minimal.dtcs.yaml. Prefer dtcsVersion: "3.0.0"; prior versions remain accepted for compatibility.
Bindings: Python (pip install dtcs), WASM (@eddiethedean/dtcs-wasm), Node (@eddiethedean/dtcs). See docs/api/.
What this repository contains
- SPEC.md — normative DTCS 3.0 draft (27 chapters + Appendix A, including Rich Portable Analytics)
- Reference tools — parse, validate, analyze, plan, optimize, match, compile, and run contracts (Rust CLI + Python; limited WASM/Node surface)
| Spec status | Draft (3.0.0) |
| Reference tools | 0.13.0 (alpha) — validator through reference runtime, portable profiles, and conformance |
Document dtcsVersion |
"3.0.0" preferred; prior supported versions remain accepted |
Coverage tables labeled “Covered” or “Complete” mean the reference implementation exercises that draft SPEC area, not that DTCS 3.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 |
| Versions | docs/user/versioning.md |
| Write contracts | docs/user/writing-contracts.md |
| CLI reference | docs/user/cli-guide.md |
| Upgrade to 0.13 / Spec 3.0 | docs/user/migration-0.13.md |
| Historical: 0.12 / Spec 2.0 | docs/user/migration-0.12.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 3.0.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.