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.0.tar.gz (64.3 kB view details)

Uploaded Source

Built Distribution

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

dtcs-0.1.0-cp39-abi3-manylinux_2_34_x86_64.whl (614.2 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for dtcs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4792aa9fbd71f94229adcab731b3c9410270b1a48ff9c86aa685931a220c9b4
MD5 43acbc8f9e13e937f29031c600105039
BLAKE2b-256 5812692db92d558605094a85f1fbd37680d02b06e52a98f2c6bd6585d9f14c9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dtcs-0.1.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f14dc683dd6b7d1bc12e88b72b194cbca4091cc8673486fa33079b6c611848c3
MD5 1ae3894a934df59a00cc6f29fe6ce3c7
BLAKE2b-256 eaf3df011cf0077be3aa562839426543afc9015e6085c5d45f5d86d9f02231c5

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