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 reference runtime execution:

DTCS Document → Parser → Canonical Object Model → Validator → Diagnostics
                                             ├→ Analyzer → Analysis reports
                                             ├→ Registry (identifier resolution)
                                             ├→ Planner → Transformation Plan
                                             ├→ Optimizer → Optimized Plan
                                             ├→ Capability match → Compile → ExecutionPlan
                                             └→ Runtime → Output datasets

§Example

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

let yaml = br#"
dtcsVersion: "3.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 analysis::check_contract;
pub use analysis::check_expression;
pub use analysis::from_structured_node;
pub use analysis::to_structured_node;
pub use analysis::AnalysisFinding;
pub use analysis::AnalysisReport;
pub use capability::discover as discover_capabilities;
pub use capability::match_plan;
pub use capability::match_plan_with_registry;
pub use capability::reference_portable_manifest;
pub use capability::reference_profile;
pub use capability::validate as validate_capabilities;
pub use capability::validate_capability_accuracy;
pub use capability::CapabilityMatchReport;
pub use capability::EngineCapabilityDeclaration;
pub use capability::EntryCapability;
pub use capability::PortableCapabilityManifest;
pub use capability::REFERENCE_CERTIFIED_FEATURES;
pub use capability::REFERENCE_EXPERIMENTAL_FEATURES;
pub use capability::REFERENCE_UNSUPPORTED_CLAIMS;
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 compile::compile;
pub use compile::compile_after_match;
pub use compile::compile_with_capability;
pub use compile::validate as validate_execution_plan;
pub use compile::CompileResult;
pub use compile::ExecutionPlan;
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::types_assignable;
pub use model::CompatibilityDeclaration;
pub use model::ContractGuarantees;
pub use model::ExtensionCompatibility;
pub use model::FieldConstraints;
pub use model::InformationFlow;
pub use model::LogicalType;
pub use model::NullBehavior;
pub use model::RegistryCategory;
pub use model::RegistryDocument;
pub use model::RegistryEntry;
pub use model::RegistryEntryStatus;
pub use model::RegistryPublicationStatus;
pub use model::RegistryRef;
pub use model::Rule;
pub use model::RuleOutcome;
pub use model::RulePhase;
pub use model::RuleScope;
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 plan::equivalent;
pub use plan::equivalent as plan_equivalent;
pub use plan::export_portable_plan;
pub use plan::lower as lower_plan;
pub use plan::optimize;
pub use plan::optimize as optimize_plan;
pub use plan::validate as validate_plan;
pub use plan::OptimizeOptions;
pub use plan::OptimizeResult;
pub use plan::PlanResult;
pub use plan::PortablePlan;
pub use plan::RegistryVersions;
pub use plan::TransformationPlan;
pub use plan::COMPLEX_TYPES_PROFILE;
pub use plan::COMPLEX_VALUES_PROFILE;
pub use plan::CONVERSION_PROFILE;
pub use plan::KERNEL_PROFILE;
pub use plan::LEGACY_TRANSFORM_PLAN_IDENTITY;
pub use plan::NONDETERMINISTIC_PROFILE;
pub use plan::RELATIONAL_EXTENDED_PROFILE;
pub use plan::RELATIONAL_PROFILE;
pub use plan::RESHAPE_PROFILE;
pub use plan::STATISTICS_PROFILE;
pub use plan::STRING_ADVANCED_PROFILE;
pub use plan::TEMPORAL_IANA_PROFILE;
pub use plan::TRANSFORM_PLAN_IDENTITY;
pub use plan::WINDOW_PROFILE;
pub use registry::default_registry;
pub use registry::is_known_action;
pub use registry::is_known_function;
pub use registry::is_known_operator;
pub use registry::is_known_profile;
pub use registry::is_known_rule;
pub use registry::load as load_registry;
pub use registry::load_merged;
pub use registry::resolve as resolve_registry;
pub use registry::resolve_default;
pub use runtime::execute;
pub use runtime::Dataset;
pub use runtime::ExecuteResult;
pub use runtime::Row;
pub use runtime::RuntimeInputs;
pub use runtime::RuntimeOutputs;
pub use runtime::RuntimeValue;
pub use validation::validate;
pub use validation::validate_with_registry;
pub use validation::ValidationPhase;
pub use conformance::declare as conformance_declare;
pub use conformance::declare_profile as conformance_declare_profile;
pub use conformance::default_fixtures_dir as conformance_fixtures_dir;
pub use conformance::embedded_profiles as conformance_profiles;
pub use conformance::manifest as conformance_manifest;
pub use conformance::run_all as conformance_run_all;
pub use conformance::run_for_profiles as conformance_run;
pub use conformance::ConformanceProfile;
pub use conformance::ConformanceReport;
pub use conformance::ImplementationCapabilityDeclaration;
pub use conformance::ImplementationClass;

Modules§

analysis
Static semantic analysis (SPEC Chapters 7–8).
capability
Engine capability model and matching (SPEC Chapter 14).
cli
Command-line interface.
compatibility
Compatibility evaluation (SPEC Chapter 11–12).
compile
Compilation of transformation plans to execution plans (SPEC Chapter 15).
conformance
Conformance profiles, declarations, and offline test suite (SPEC Chapter 23).
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 lowering and validation (SPEC Chapter 13).
registry
Identifier registry resolution (SPEC Chapters 21–22).
runtime
Runtime execution (SPEC Chapter 16).
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.
parse_validate_and_compile
Parse, validate, lower, compile, and optimize a DTCS document.
parse_validate_and_compile_with_registry
Parse, validate, lower, and compile using an optional vendor registry.
parse_validate_and_optimize
Parse, validate, lower, and optimize a DTCS document.
parse_validate_and_optimize_with_registry
Parse, validate, lower, and optimize a DTCS document using an optional vendor registry.
parse_validate_and_plan
Parse, validate, and lower a DTCS document to a transformation plan.
parse_validate_and_plan_with_registry
Parse, validate, and lower a DTCS document using an optional vendor registry.
parse_validate_and_run
Parse, validate, lower, compile, and execute a DTCS document.
parse_validate_and_run_with_registry
Parse through compile and execute with an optional vendor registry.