Expand description
Reference implementation of the Open Data Contract Standard (ODCS).
This is a reference implementation — not the normative ODCS specification. The upstream standard is maintained at bitol-io/open-data-contract-standard.
§User documentation
§Pipeline
ODCS Document → Parser → Canonical Object Model → Validator → Diagnostics§Stable API
Use root re-exports only (parse, validate, parse_and_validate, DataContract,
ContractSet, Registry, diff, …). Internal modules (parser, validation, model, …)
are #[doc(hidden)] and not semver-stable. See the
public API guide.
§Error handling
parse/parse_and_validate— returnDiagnosticReport(validation) or embed parse diagnostics inParseResultparse_file/DataContract::from_file— returnmiette::Resultfor I/O errorsParseResult::into_contract/parse_strict—Result<DataContract, DiagnosticReport>after parse and validation
Match on diagnostic codes and object_ref, not message text.
§Example
use odcs::{parse, validate, DocumentFormat};
let yaml = br#"
version: "1.0.0"
apiVersion: "v3.1.0"
kind: "DataContract"
id: "example"
status: "draft"
"#;
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::diff;pub use compatibility::ChangeKind;pub use compatibility::CompatibilityChange;pub use compatibility::CompatibilityReport;pub use contract_set::load_set;pub use contract_set::load_set_with_registry;pub use contract_set::parse_and_validate_set;pub use contract_set::parse_and_validate_set_with_registry;pub use contract_set::validate_set;pub use contract_set::ContractSet;
Modules§
- cli
- Command-line interface.
- codes
- Standardized
odcs:diagnostic identifiers. - compatibility
- Contract compatibility analysis.
- contract_
set - Cross-file contract loading and validation.
Structs§
- Data
Contract - An ODCS Data Contract — the canonical root object.
- Diagnostic
- A spec-level diagnostic record.
- Diagnostic
Report - Collection of diagnostics produced during parsing or validation.
- Parse
Result - Result of parsing an ODCS document.
- Registry
- Local contract registry backed by
.odcs/registry.json. - Registry
Entry - A single contract entry in a local registry index.
Enums§
- Diagnostic
Category - Standard diagnostic category.
- Diagnostic
Stage - Originating processing stage.
- Document
Format - Supported ODCS document serialization formats.
- Severity
- Diagnostic severity.
- Validation
Phase - Validation phases for ODCS documents.
Constants§
- MAX_
PARSE_ BYTES - Maximum document size accepted by
parse_file(16 MiB). - UPSTREAM_
SPEC_ VERSION - Upstream ODCS specification version this crate targets.
Functions§
- index_
and_ save_ registry - Scan a directory and write
<dir>/.odcs/registry.json. - index_
registry - Scan a directory recursively and build a registry index in memory.
- inspect_
contract - Returns a short human-readable contract summary.
- load_
registry - Load a registry from
<dir>/.odcs/registry.json. - parse
- Parse an ODCS document from bytes.
- parse_
and_ validate - Parse and validate an ODCS document in one step.
- parse_
file - Parse an ODCS document from a file path.
- parse_
json - Parse JSON bytes into an ODCS contract.
- parse_
strict - Parse and validate an ODCS document, returning an error report on failure.
- parse_
yaml - Parse YAML bytes into an ODCS contract.
- validate
- Validate a parsed data contract (Rust pipeline + JSON Schema).
- validate_
with_ contract_ index - Validate a parsed data contract with optional cross-file reference index.
Type Aliases§
- Validation
Report - Alias aligned with implementation guides.