dtcs 0.12.0

Reference implementation of the Data Transformation Contract Standard (DTCS)
Documentation

DTCS — Data Transformation Contract Standard

CI Documentation Status crates.io PyPI License

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 2.0.0 (draft) · Tools 0.12.0 (alpha). Good for validation, compatibility analysis, portable relational profiles, 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).

pip install dtcs
dtcs version
# → dtcs 0.12.0
# → spec 2.0.0

curl -fsSL https://raw.githubusercontent.com/eddiethedean/dtcs/main/examples/minimal.dtcs.yaml \
  -o contract.dtcs.yaml
dtcs validate contract.dtcs.yaml
# → valid
# → exit 0

Or paste the same file from examples/minimal.dtcs.yaml. Prefer dtcsVersion: "2.0.0"; "1.0.0" remains 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 2.0 draft (26 chapters + Appendix A, including Portable Relational)
  • Reference tools — parse, validate, analyze, plan, optimize, match, compile, and run contracts (Rust CLI + Python; limited WASM/Node surface)
Spec status Draft (2.0.0)
Reference tools 0.12.0 (alpha) — validator through reference runtime, portable relational profiles, and conformance
Document dtcsVersion "2.0.0" preferred; "1.0.0" / "1.0.0-draft" still accepted

Coverage tables labeled “Covered” or “Complete” mean the reference implementation exercises that draft SPEC area, not that DTCS 2.0 is finalized or production-certified.

Next steps (after valid)

Clone for richer examples and fixtures (PyPI wheels do not include examples/ or tests/):

git clone https://github.com/eddiethedean/dtcs.git
cd dtcs
dtcs validate examples/customer_pipeline.dtcs.yaml
dtcs run examples/customer_pipeline.dtcs.yaml \
  --input tests/fixtures/runtime/customer_pipeline_input.json
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.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 2.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.