Skip to main content

Crate dtcs

Crate dtcs 

Source
Expand description

Reference implementation of the Data Transformation Contract Standard (DTCS).

SPEC.md at the repository root is the authoritative normative specification. This crate implements the pipeline through contract analysis:

DTCS Document → Parser → Canonical Object Model → Validator → Diagnostics
                                             └→ Analyzer → Analysis reports

§Example

use dtcs::{parse, validate, DocumentFormat};

let yaml = br#"
dtcsVersion: "1.0.0"
id: "example"
name: "Example"
version: "0.2.0"
inputs:
  - id: "in"
    schema:
      fields:
        - name: "value"
          type: "string"
          nullable: false
outputs:
  - id: "out"
    schema:
      fields:
        - name: "value"
          type: "string"
          nullable: false
lineage:
  mappings:
    - output: "out"
      inputs: ["in"]
"#;

let result = parse(yaml, DocumentFormat::Yaml);
let contract = result.contract.expect("parse succeeded");
let report = validate(&contract);
assert!(report.is_valid());

Re-exports§

pub use compatibility::analyze as analyze_compatibility;
pub use compatibility::analyze_evolution;
pub use compatibility::ChangeCategory;
pub use compatibility::ComparisonScope;
pub use compatibility::CompatibilityLevel;
pub use compatibility::CompatibilityReport;
pub use compatibility::EvolutionReport;
pub use diagnostics::codes;
pub use diagnostics::inspect_contract;
pub use diagnostics::Diagnostic;
pub use diagnostics::DiagnosticCategory;
pub use diagnostics::DiagnosticReport;
pub use diagnostics::DiagnosticStage;
pub use diagnostics::Severity;
pub use diagnostics::ValidationReport;
pub use lineage::analyze as analyze_lineage;
pub use lineage::LineageAnalysisReport;
pub use lineage::LineageGovernance;
pub use model::parse_logical_type;
pub use model::type_compatible;
pub use model::LogicalType;
pub use model::TransformationContract;
pub use model::TypeCompatibility;
pub use model::TypeParseError;
pub use parser::parse;
pub use parser::parse_file;
pub use parser::parse_json;
pub use parser::parse_yaml;
pub use parser::DocumentFormat;
pub use parser::ParseResult;
pub use validation::validate;
pub use validation::ValidationPhase;

Modules§

cli
Command-line interface.
compatibility
Compatibility evaluation (SPEC Chapter 11–12).
diagnostics
DTCS diagnostics.
lineage
Lineage analysis (SPEC Chapter 10 §11).
metadata
Metadata validation (SPEC Chapter 5).
model
Canonical Object Model types derived from SPEC.md.
parser
DTCS document parsers.
plan
Transformation plan (future milestone).
validation
Validation pipeline.
versioning
Version identifier validation (SPEC Chapter 25).

Constants§

SPEC_VERSION
DTCS specification version this crate targets.

Functions§

parse_and_validate
Parse and validate a DTCS document in one step.