dtcs 0.11.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 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).

pip install dtcs
dtcs version
# → dtcs 0.11.0
# → spec 1.0.0-draft

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. 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/):

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
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.