Skip to main content

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

dtcs-0.1.2.tar.gz (65.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dtcs-0.1.2-cp39-abi3-win_arm64.whl (496.6 kB view details)

Uploaded CPython 3.9+Windows ARM64

dtcs-0.1.2-cp39-abi3-win_amd64.whl (521.5 kB view details)

Uploaded CPython 3.9+Windows x86-64

dtcs-0.1.2-cp39-abi3-win32.whl (482.6 kB view details)

Uploaded CPython 3.9+Windows x86

dtcs-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl (899.2 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

dtcs-0.1.2-cp39-abi3-musllinux_1_2_i686.whl (933.2 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

dtcs-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl (947.6 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

dtcs-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl (845.6 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

dtcs-0.1.2-cp39-abi3-manylinux_2_28_aarch64.whl (675.9 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

dtcs-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (699.1 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

dtcs-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (737.8 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

dtcs-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (981.2 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

dtcs-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (681.6 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

dtcs-0.1.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl (736.6 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.5+ i686

dtcs-0.1.2-cp39-abi3-macosx_11_0_arm64.whl (615.2 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

dtcs-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl (629.1 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

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

Hashes for dtcs-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ca958cb1452944509c4b9e9f7d0e6ffbf6df13b4bc6b090073fc34e1b825b013
MD5 63c28b3ef6126ec15a9f1626b88d3e28
BLAKE2b-256 0c33d96795c7c0c0370a4b5f5959a665bc4ef02606c3ba5d958d5a4327da3922

See more details on using hashes here.

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

Hashes for dtcs-0.1.2-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 b527d61d3214a0df397f9c413de44727470145bb9f4c8bcdad558bd113da761f
MD5 bff3655ac32a8d767fccce9e63bd3716
BLAKE2b-256 9ac8f38fe510dad7f88e1a700cbd1d17b73e427214f7f661c3c46cafe7430bf5

See more details on using hashes here.

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

Hashes for dtcs-0.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ff190a480aa5fef7fce8dbc23f6b6ef9412057e3896d515e12d7fce34ef46258
MD5 a562d9e0b98bce8568a437013e03c420
BLAKE2b-256 74ec15c6bc33a757fa452a159e4d0b4209d542d457f7a08797ccb8c9988c8302

See more details on using hashes here.

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

Hashes for dtcs-0.1.2-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 bcfb2b1a36ea6e342639b4ab5aca55aeb732b5c3aa1e813c879199fa390147dd
MD5 e1661178cb6ca4f59b3073a55550ee93
BLAKE2b-256 acdf608599a00bea1755be3f8f83cfcbdc266531cdc66cbd86c05b4337e7a1c8

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 170e0a6c1ec9e6c07e3f25b52d876262ea38c71185347ccc333ec72a65acc31a
MD5 75cac9ee3acd58894af5157805d26f54
BLAKE2b-256 f2b69b470aff558969bd88c9a37abcde5506664f7ff10d223d6937e4e712caf0

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c97dd0f213a7bed47aefee0f9e40f949b690769f219772d85aa6823f7ca0f512
MD5 256e4f5d840ff75d95fff60ba725b6f4
BLAKE2b-256 9f52e26133338a2bc01b184b96b4eafbef3b82c2a9aaa1db64868917eb33cbcb

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 22e9d6bfe5b5a0785d03a20855d2884e5557de6f594eea5f3b9af952a6118641
MD5 34263f8d9f416f5a9e0f5cab5dd682f6
BLAKE2b-256 9e692ff720f5c0f9fbcd46cdab644cdc03db0f78eb59293493f8a1ddd0b38bb1

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0e0b6aaa96722db7acc119a36c0e23fa768a8649231ac5fe8842824160d142f4
MD5 1dd83ba10092c01cceb942e1f4af6998
BLAKE2b-256 d031c6a4ff06b43404f8fc5b81b4133641d10dd8408a1ff7d1be379595dac638

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ff04a79e64df755829aac7cd908d082fbdbef252df91665ecd378a9e87326ee0
MD5 8503fbe3752cd1d0345b5675a8385edc
BLAKE2b-256 363a8421f3a8fb80e90c7a4a39505581569b95910984e8a35316596a0e7c346b

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2488298a9fa7db178ed6aedc2b9777512e03eb3022b5491c626f56c896a6c14
MD5 46f39cde60b996bc69ca4626e8a4667e
BLAKE2b-256 ab9c1df2c2958f92e7e30a69e1de43daba18bd4507149ecc33e07cf5a1285f26

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7930b7abc7e82d728278eb58f10d6de5f7564b576dec2bb9285e24f96f6e56e6
MD5 6c464cf226aa4efbf2d4d394b7a3bcab
BLAKE2b-256 c0a06f1c8233d17295ea20441e39ba925c88b0a656e49e9cc2490b552a515656

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3d674e51e474fbee46cd08d0659709b5a60965bac663cd6d6a0c60dff6674556
MD5 864bda1bfb6e27d6b4b65c6c2391a3a9
BLAKE2b-256 9c6997ad3be1eae36dad626ffb52c396035ccd26c1c3159bc0117c4237da472c

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 751402d020ce484f72758b9628b78c8bb5a1347eb4232c3c3f729085888f317e
MD5 8555ea19bbcb58c5ef7102a23f0af73a
BLAKE2b-256 c9fc18716f8455f5e102c2b50c1cadac8a41a80aac1a01ee769950f10a52412e

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 4c33398661d5c38acc014e2c2e3f52569faa3d5bd108b45222538f20366729b8
MD5 86e58245d2fea27def0fa4d0c8a2d38c
BLAKE2b-256 0c818f19f0bb5212130709a8bf361609e5fc65eb84225436cceef8565245adc5

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 787977b5d5ab48eaa3308cd4bbff680693a4940d39e7aad6b199061def14fcb2
MD5 3510a2aa27ca8df15a11ac0ae7ea8c2c
BLAKE2b-256 40c41526d5eb1fd319f71e1d79e0ce20de2eaa20cd399e694e5cb9e6848d4717

See more details on using hashes here.

File details

Details for the file dtcs-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4169fa55e170a7c99618708207e72a4330baeb74e21b045142bc961c342637dd
MD5 b24f4065aaace3bd6d6ce6ae7337d133
BLAKE2b-256 39e04db8bb3202742a8bc1798aeb6b4270e55fde698957d14ae37c1b99b6c4d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page