Reference implementation of the Data Transformation Contract Standard (DTCS)
Project description
DTCS — Data Transformation Contract Standard
Vendor-neutral specification and reference implementation for expressing the semantics of data transformations.
Status: Draft
Specification version: 1.0.0-draft
Document dtcsVersion: 1.0.0 (accepted by the reference validator for compatible 1.0.x releases)
Overview
SPEC.md is the authoritative normative specification for DTCS. It defines transformation contracts, the canonical object model, validation, diagnostics, conformance, and governance — without prescribing execution engines, storage, or orchestration.
This repository contains:
| Path | Purpose |
|---|---|
| SPEC.md | Full DTCS 1.0 draft specification (26 chapters) |
| docs/ | Documentation index |
| docs/editorial/ | Authoring standards, style guide, and review process |
| docs/implementation/ | Rust reference implementation design and build guides |
| src/ | Rust crate source (dtcs) |
| python/ | Python package source (dtcs on PyPI) |
| examples/ | Sample DTCS transformation contracts |
| tests/ | Integration tests and fixtures |
| .github/workflows/ | CI pipeline |
Quick start
Read the specification
less SPEC.md
Build the Rust crate
cargo build
cargo test
cargo run -- validate examples/customer_normalize.dtcs.yaml
cargo run -- inspect examples/customer_normalize.dtcs.yaml
Use the Python package
pip install maturin
maturin develop --features python
python -m dtcs validate examples/customer_normalize.dtcs.yaml
python -m dtcs inspect examples/customer_normalize.dtcs.yaml
pytest python/tests -v
import dtcs
report = dtcs.parse_and_validate(open("examples/customer_normalize.dtcs.yaml", "rb").read())
assert dtcs.is_valid(report)
The first implementation milestone is:
DTCS Document → Parser → Canonical Object Model → Validator → Diagnostics
Execution, backend compilation, and runtime behavior are out of scope for the initial crate. See docs/implementation/non-goals.md.
Repository layout
dtcs/
├── SPEC.md # Normative specification (source of truth)
├── Cargo.toml # Rust crate manifest
├── pyproject.toml # Python package manifest (maturin)
├── Cargo.lock # Pinned dependencies (binary crate)
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── .github/workflows/ # CI
├── docs/
│ ├── README.md # Documentation index
│ ├── editorial/ # Specification authoring process
│ └── implementation/ # Reference implementation guides
├── examples/ # Example transformation contracts
├── python/ # Python package source
├── src/ # Rust library, CLI binary, validation
├── tests/ # Integration tests and fixtures
└── .cursor/prompts/ # Cursor build prompt
Contributing
See CONTRIBUTING.md for editorial conventions, implementation guidelines, and the review process.
When implementation guidance conflicts with the specification, SPEC.md wins. See docs/implementation/spec-usage.md.
License
Licensed under the Apache License, Version 2.0. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dtcs-0.1.2.tar.gz.
File metadata
- Download URL: dtcs-0.1.2.tar.gz
- Upload date:
- Size: 65.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca958cb1452944509c4b9e9f7d0e6ffbf6df13b4bc6b090073fc34e1b825b013
|
|
| MD5 |
63c28b3ef6126ec15a9f1626b88d3e28
|
|
| BLAKE2b-256 |
0c33d96795c7c0c0370a4b5f5959a665bc4ef02606c3ba5d958d5a4327da3922
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-win_arm64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-win_arm64.whl
- Upload date:
- Size: 496.6 kB
- Tags: CPython 3.9+, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b527d61d3214a0df397f9c413de44727470145bb9f4c8bcdad558bd113da761f
|
|
| MD5 |
bff3655ac32a8d767fccce9e63bd3716
|
|
| BLAKE2b-256 |
9ac8f38fe510dad7f88e1a700cbd1d17b73e427214f7f661c3c46cafe7430bf5
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 521.5 kB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff190a480aa5fef7fce8dbc23f6b6ef9412057e3896d515e12d7fce34ef46258
|
|
| MD5 |
a562d9e0b98bce8568a437013e03c420
|
|
| BLAKE2b-256 |
74ec15c6bc33a757fa452a159e4d0b4209d542d457f7a08797ccb8c9988c8302
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-win32.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-win32.whl
- Upload date:
- Size: 482.6 kB
- Tags: CPython 3.9+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcfb2b1a36ea6e342639b4ab5aca55aeb732b5c3aa1e813c879199fa390147dd
|
|
| MD5 |
e1661178cb6ca4f59b3073a55550ee93
|
|
| BLAKE2b-256 |
acdf608599a00bea1755be3f8f83cfcbdc266531cdc66cbd86c05b4337e7a1c8
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 899.2 kB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
170e0a6c1ec9e6c07e3f25b52d876262ea38c71185347ccc333ec72a65acc31a
|
|
| MD5 |
75cac9ee3acd58894af5157805d26f54
|
|
| BLAKE2b-256 |
f2b69b470aff558969bd88c9a37abcde5506664f7ff10d223d6937e4e712caf0
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 933.2 kB
- Tags: CPython 3.9+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c97dd0f213a7bed47aefee0f9e40f949b690769f219772d85aa6823f7ca0f512
|
|
| MD5 |
256e4f5d840ff75d95fff60ba725b6f4
|
|
| BLAKE2b-256 |
9f52e26133338a2bc01b184b96b4eafbef3b82c2a9aaa1db64868917eb33cbcb
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 947.6 kB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22e9d6bfe5b5a0785d03a20855d2884e5557de6f594eea5f3b9af952a6118641
|
|
| MD5 |
34263f8d9f416f5a9e0f5cab5dd682f6
|
|
| BLAKE2b-256 |
9e692ff720f5c0f9fbcd46cdab644cdc03db0f78eb59293493f8a1ddd0b38bb1
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 845.6 kB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e0b6aaa96722db7acc119a36c0e23fa768a8649231ac5fe8842824160d142f4
|
|
| MD5 |
1dd83ba10092c01cceb942e1f4af6998
|
|
| BLAKE2b-256 |
d031c6a4ff06b43404f8fc5b81b4133641d10dd8408a1ff7d1be379595dac638
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 675.9 kB
- Tags: CPython 3.9+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff04a79e64df755829aac7cd908d082fbdbef252df91665ecd378a9e87326ee0
|
|
| MD5 |
8503fbe3752cd1d0345b5675a8385edc
|
|
| BLAKE2b-256 |
363a8421f3a8fb80e90c7a4a39505581569b95910984e8a35316596a0e7c346b
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 699.1 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2488298a9fa7db178ed6aedc2b9777512e03eb3022b5491c626f56c896a6c14
|
|
| MD5 |
46f39cde60b996bc69ca4626e8a4667e
|
|
| BLAKE2b-256 |
ab9c1df2c2958f92e7e30a69e1de43daba18bd4507149ecc33e07cf5a1285f26
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 737.8 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7930b7abc7e82d728278eb58f10d6de5f7564b576dec2bb9285e24f96f6e56e6
|
|
| MD5 |
6c464cf226aa4efbf2d4d394b7a3bcab
|
|
| BLAKE2b-256 |
c0a06f1c8233d17295ea20441e39ba925c88b0a656e49e9cc2490b552a515656
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 981.2 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d674e51e474fbee46cd08d0659709b5a60965bac663cd6d6a0c60dff6674556
|
|
| MD5 |
864bda1bfb6e27d6b4b65c6c2391a3a9
|
|
| BLAKE2b-256 |
9c6997ad3be1eae36dad626ffb52c396035ccd26c1c3159bc0117c4237da472c
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 681.6 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
751402d020ce484f72758b9628b78c8bb5a1347eb4232c3c3f729085888f317e
|
|
| MD5 |
8555ea19bbcb58c5ef7102a23f0af73a
|
|
| BLAKE2b-256 |
c9fc18716f8455f5e102c2b50c1cadac8a41a80aac1a01ee769950f10a52412e
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 736.6 kB
- Tags: CPython 3.9+, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c33398661d5c38acc014e2c2e3f52569faa3d5bd108b45222538f20366729b8
|
|
| MD5 |
86e58245d2fea27def0fa4d0c8a2d38c
|
|
| BLAKE2b-256 |
0c818f19f0bb5212130709a8bf361609e5fc65eb84225436cceef8565245adc5
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 615.2 kB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
787977b5d5ab48eaa3308cd4bbff680693a4940d39e7aad6b199061def14fcb2
|
|
| MD5 |
3510a2aa27ca8df15a11ac0ae7ea8c2c
|
|
| BLAKE2b-256 |
40c41526d5eb1fd319f71e1d79e0ce20de2eaa20cd399e694e5cb9e6848d4717
|
File details
Details for the file dtcs-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: dtcs-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 629.1 kB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4169fa55e170a7c99618708207e72a4330baeb74e21b045142bc961c342637dd
|
|
| MD5 |
b24f4065aaace3bd6d6ce6ae7337d133
|
|
| BLAKE2b-256 |
39e04db8bb3202742a8bc1798aeb6b4270e55fde698957d14ae37c1b99b6c4d5
|