Skip to main content

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

pip install dtcs
dtcs version
# → dtcs 0.13.0
# → spec 3.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: "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/):

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

Metadata

Release files for dtcs 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dtcs 0.13.0
File Size Uploaded
dtcs-0.13.0.tar.gz 440.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for dtcs 0.13.0
File
dtcs-0.13.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
dtcs-0.13.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
dtcs-0.13.0-cp39-abi3-win32.whl CPython 3.9 abi3 Windows x86-32 Details
dtcs-0.13.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
dtcs-0.13.0-cp39-abi3-musllinux_1_2_i686.whl CPython 3.9 abi3 Linux musl 1.2+ x86-32 Details
dtcs-0.13.0-cp39-abi3-musllinux_1_2_armv7l.whl CPython 3.9 abi3 Linux musl 1.2+ ARMv7l Details
dtcs-0.13.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
dtcs-0.13.0-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
dtcs-0.13.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
dtcs-0.13.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.9 abi3 Linux glibc 2.17+ IBM System/390x Details
dtcs-0.13.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.9 abi3 Linux glibc 2.17+ PowerPC 64-le Details
dtcs-0.13.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.9 abi3 Linux glibc 2.17+ ARMv7l Details
dtcs-0.13.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.9 abi3 Linux glibc 2.5+ x86-32 Details
dtcs-0.13.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
dtcs-0.13.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 44.9 MB

Release files / dtcs-0.13.0.tar.gz

Download URL dtcs-0.13.0.tar.gz
Size 440.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4c84634eeedae26d01fde273ae544d6f421cde199ee34af691310a51c26125f4
BLAKE2b-256 checksum
How to use checksums
9f1f3a4d03031e503adca647a2fecf814ba3605f1b4cec4eb842ba132b82f65b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-win_arm64.whl

Download URL dtcs-0.13.0-cp39-abi3-win_arm64.whl
Size 2.6 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
6f12463934ab9e483d52941518a0bc2216922ba45cd34692852eb970d39176e4
BLAKE2b-256 checksum
How to use checksums
372fcfb805f9476cd4dcc65e3fc9ea4abf411f36e6f4ca8047ffc7778d3348cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-win_amd64.whl

Download URL dtcs-0.13.0-cp39-abi3-win_amd64.whl
Size 2.7 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1a2da2ea052d709e4c29c8da8d7e9ed801be3d7d79f1b76cfb905b8a35835b68
BLAKE2b-256 checksum
How to use checksums
f219c2aafdeb9cadd6d43a204d67a960dae6801dfb8eab683f798eb865ae1119
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-win32.whl

Download URL dtcs-0.13.0-cp39-abi3-win32.whl
Size 2.5 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
dadd937a0d5adc9f6cd9caff255b9f6148db834a6acc8ec95e34f5df34ae3ad3
BLAKE2b-256 checksum
How to use checksums
b289e765158282d7be1be9dff24ef9b767eda36190a7dad81365f7d0bd7321c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL dtcs-0.13.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 3.3 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
ac3d8aec9cdf5895fca729ac1a42f82a689d065bf7daa96d8ae1a3a90bd308c3
BLAKE2b-256 checksum
How to use checksums
83cbfba844b6aabb19cf1bc24549fcec08af58d9383a4107df060cbb06484d81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-musllinux_1_2_i686.whl

Download URL dtcs-0.13.0-cp39-abi3-musllinux_1_2_i686.whl
Size 3.2 MB
Tags CPython 3.9 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
bcf743082d321e02517ebed6eba3516d9b6509ac248621a0101737b7166460ad
BLAKE2b-256 checksum
How to use checksums
e6fb2ad36a0f08079892accbecc06aa0fa419ee88f930aad20d140e3110f5ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL dtcs-0.13.0-cp39-abi3-musllinux_1_2_armv7l.whl
Size 3.1 MB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
5a9c98cb57e14d5be841b6cfe8c706041b668b79c9889d8cb1925a85cc37cb91
BLAKE2b-256 checksum
How to use checksums
c8a146082ae3ed0762937c03314df110cba170779e0fab82808f8a353a0a1cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL dtcs-0.13.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 3.1 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
458cad4c82981879da47eee21796e2a060261edebab8fb7664c6b75803478e4c
BLAKE2b-256 checksum
How to use checksums
9e7ab9ca40057077023cc6b3b4a9b87f505c242d9bc820684b105cd49dd703dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
62b6d88157ba52d5103a31acb42543aa49976fd2f16f324b9b43b17e07ddce5f
BLAKE2b-256 checksum
How to use checksums
84eec573dcdb367fd731d55e3304b664c16a1872be0bea5289728117b9338c4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
e94d546a3b1ab96a3655e3af2f4cdc7b718b7a63ab401a90316a5384997eebc7
BLAKE2b-256 checksum
How to use checksums
5a544815ea503e1b7e6a0f3a6ce014f65fda1cc0e189c333057dc72b04bfa175
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
1e5d7d51a003f491c470caa74facd8adb124accaf607d61f11189f755e1feebf
BLAKE2b-256 checksum
How to use checksums
373276f91ddab31dd38a1c7619ae86e803c43247a0f4104ce0e1a492717b9bb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 3.4 MB
Tags CPython 3.9 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
ec6eed41c179d18256c014f3084f85f42c130717f86da6a3bf9055bfef74a262
BLAKE2b-256 checksum
How to use checksums
8898537206d4c58b11d4feeaf8c1c14ffb8bf75cda0b5a68fb81b999e7986094
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
b991cc21fb29816fbcca837037bdf88576ab6d42a82f87fa27f82c304c81419f
BLAKE2b-256 checksum
How to use checksums
6a3fe22df3b4f0c046c105d2585f5b03a2bfc2f154d301ef04f24129b4192015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl

Download URL dtcs-0.13.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
b5b7e86ce82b2e2e7a8820a0da4f3189695aebc06ab4950ac60c9ec5ed085722
BLAKE2b-256 checksum
How to use checksums
1249e5649f4321df0434d57e853219d093711a4ad9e1b956bc00522d3b2a8b65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL dtcs-0.13.0-cp39-abi3-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
abe9892fe7a1161183bd202de7f0f64d1f7b852f77d3f99d5ca0fa998daf4bda
BLAKE2b-256 checksum
How to use checksums
b71f9832962fc2e09e5dde5e388172f16a7b3f73e8c531d6040b56b1d5023805
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dtcs-0.13.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL dtcs-0.13.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 2.8 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5c43434016d958a07e3eb16dc6f76f5b374d40a80587ec3fd5b91a5ac749d4e0
BLAKE2b-256 checksum
How to use checksums
5fe66f3b7c1717f9fa28527410cf69f2f36fd0181fd082417c1b8752a3f3750b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.13.0 This release

16 release files

0.1.1

5 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page