DPCS
Reference implementation of the Data Pipeline Contract Standard (DPCS).
dpcs is a Rust-first toolkit for parsing, inspecting, and validating portable,
contract-first data pipeline definitions. The full specification lives in
SPEC.md and is the authoritative source of truth.
DPCS Document -> Parser -> COM -> Validator -> Pipeline Plan -> Capability Evaluation -> Orchestrator Binding
Binding adapters emit scaffold artifacts for Airflow, Dagster, Prefect, Temporal,
and Kubernetes. Execution runtimes remain out of scope. See ROADMAP.md.
Status
| Item | Value |
|---|---|
| Crate version | 0.10.0 |
| Spec version | 1.0.0-draft |
| Language | Rust 2021 (MSRV 1.86) |
| License | Apache-2.0 OR MIT |
| Release focus | Ecosystem: bindings, schemas, registry client, packages (ROADMAP 0.10.0) |
Quick start
Install
# or, after crates.io publish:
# cargo install dpcs-cli --version 0.10.0
# pip install dpcs
# npm install dpcs
Validate a pipeline contract
Inspect and explore
Exit codes
| Code | Meaning |
|---|---|
0 |
validate/diagnostics: valid; capabilities: match ok; bind: success; compatibility: compatible; registry/conformance validate: ok; inspect/graph: successful parse |
1 |
Validation, capability, binding, compatibility, registry, or conformance errors |
2 |
Parse or I/O failure |
Library usage
use ;
Object-oriented style:
use PipelineContract;
let contract = from_yaml_file?;
let report = contract.validate;
assert!;
let yaml = contract.to_yaml_str?;
let json = contract.to_json_str?;
Graph analysis (0.4.0) and planning (0.6.0):
use ;
let contract = parse_yaml_file?;
let graph = from_contract;
if let Ok = graph.topological_order
if let Some = graph.find_cycle
match plan
Capability evaluation (0.7.0):
use ;
let profile = from_yaml_file?;
if let Ok = plan
Orchestrator binding (0.8.0):
use ;
if let Ok = plan
Compatibility, registry, and conformance (0.9.0):
use ;
match compare_contracts
let registry = from_yaml_str?;
assert!;
assert!;
Repository layout
.
├── SPEC.md # Authoritative DPCS specification
├── ROADMAP.md # Release plan
├── src/
│ ├── model/ # Canonical Object Model
│ ├── parser/ # YAML and JSON parsers
│ ├── validation/ # Phase-based validation
│ ├── diagnostics/ # Deterministic diagnostics
│ ├── plan/ # Deterministic Pipeline Plan IR
│ ├── capabilities/ # Capability profiles and matcher
│ ├── binding/ # Orchestrator binding scaffolds
│ ├── compatibility/ # Compatibility analysis
│ ├── conformance/ # Conformance claims and profiles
│ └── cli/ # CLI implementation
├── examples/ # Example contracts and profiles
├── tests/fixtures/ # Valid and invalid fixtures
├── docs/ # Design and contributor guides
└── adr/ # Architecture decision records
Development
Useful docs:
docs/ARCHITECTURE.mddocs/CRATE_LAYOUT.mddocs/PUBLIC_API.mddocs/CLI_SPEC.mddocs/TESTING_PLAN.mddocs/IMPLEMENTATION_PHASES.mddocs/NON_GOALS.md
Design principles
- SPEC.md is authoritative. Implementation follows the specification, not the other way around.
- Contract-first. Pipelines are portable declarations, not engine-specific DAGs.
- Deterministic diagnostics. Validation returns structured findings, never panics on invalid input.
- Incremental delivery. Each
0.xrelease completes a coherent slice of the roadmap.
Relationship to ODCS and DTCS
ODCS -> what data is
DTCS -> how data changes
DPCS -> how transformations compose into pipelines
DPCS references ODCS and DTCS artifacts through contract references. It does not re-implement those standards.
Contributing
See CONTRIBUTING.md and ROADMAP.md.
License
Licensed under either of:
- Apache License, Version 2.0 (
LICENSE-APACHE) - MIT license (
LICENSE-MIT)
at your option.