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.1.tar.gz (64.9 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.1-cp39-abi3-win_amd64.whl (526.5 kB view details)

Uploaded CPython 3.9+Windows x86-64

dtcs-0.1.1-cp39-abi3-manylinux_2_34_x86_64.whl (699.3 kB view details)

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

dtcs-0.1.1-cp39-abi3-macosx_11_0_arm64.whl (614.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

dtcs-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl (629.4 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file dtcs-0.1.1.tar.gz.

File metadata

  • Download URL: dtcs-0.1.1.tar.gz
  • Upload date:
  • Size: 64.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for dtcs-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ff543f1e253208a57f4e6c75f392b39eed2e25c01cb6c5581217d56515c61d69
MD5 d4ca92abb10ae71eca283a509933b4ed
BLAKE2b-256 60277c033f3c3eefb9a901cc36d43e7b95519aac24546a77a8624f3952992967

See more details on using hashes here.

File details

Details for the file dtcs-0.1.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: dtcs-0.1.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 526.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.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9b4ec3381c7d5f26cee0360d353acfe81e5463ec8b5097feff23e1a2a2853484
MD5 eb756059c6873963bd4fd4c8afdc558c
BLAKE2b-256 c16c86589983f6925740d14131f95952bc8bce4ea1d55d894b7086a08a480d96

See more details on using hashes here.

File details

Details for the file dtcs-0.1.1-cp39-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for dtcs-0.1.1-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2e89e8c3e51f619e5a24f887c4951dc9e7ab819d4e869ef45bb980e519570c06
MD5 6d169ab8f03abedbbe2b349f6d28481a
BLAKE2b-256 18bbd08246438a5a5e5053ad5716402c10d8f2f84cc4fc54bf6da8cfd3bbd1e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dtcs-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f96d1f23047e9b45cc31f051a1537b02e0c3426a1c7a5e122a0df2586f767a1
MD5 c03f00c19f5fa0061e3fe967a65dbe1f
BLAKE2b-256 5de95de89d4201891aef5423da4dae2f82a6a6c074d8da7f97663bb3ee857e7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dtcs-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aa1237ae69276cf0ecb842dbc49972fb16bdc4226d8189f3ee8fcad89a798a42
MD5 f57394e871aa94ce69a0f71cbb91d93b
BLAKE2b-256 c4634f9333c76bca4086963d8abcf975df8ede770bc48f0e2da236987f485827

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