dpp-domain
Core domain types, port traits, and schema validation for the Odal Node Digital Product Passport system.
This is the foundational crate. All other dpp-* crates depend on it.
It contains everything that changes when EU regulations change — and nothing else.
When to use this crate
- You need the DPP data model:
Passport,SectorData,TransferChain. - You are implementing a platform adapter (database, HTTP layer) and need the
port trait interfaces:
PassportRepository,IdentityPort,PluginHost, etc. - You want to validate passport data against embedded JSON schemas.
Example
use ;
let passport = new;
passport.validate.unwrap;
Relationship to other crates
| Crate | Role |
|---|---|
dpp-crypto |
Cryptographic signing, VCs, audience/disclosure access policy — depends on this crate |
dpp-digital-link |
GS1 Digital Link parsing, AAS mapping — depends on this crate |
dpp-registry |
EU Central Registry connector — depends on this crate |
dpp-plugin-traits |
Wasm plugin ABI — standalone, no dependency on this crate |
Minimum Rust version
1.96 (MSRV is enforced in CI)
License
Apache-2.0 — see LICENSE