ddd-toolkit
Domain-Driven Design building blocks for Rust: entities, value objects,
aggregates, repositories, and event dispatch, plus derive macros for the
common cases. This crate is a single-dependency facade over
ddd-toolkit-core and
ddd-toolkit-macro - add
ddd-toolkit and you get both.
Example
use ;
;
;
;
Features
| Feature | Default | Enables |
|---|---|---|
derive |
yes | #[derive(ValueObject, EntityId, SecretVo, EnumVo)] via ddd-toolkit-macro |
chrono |
no | Clock port + SystemClock/FixedClock adapters |
uuid |
no | IdGenerator port + UuidV4Generator/UuidV7Generator adapters |
zeroize |
no | #[vo(zeroize)] support on SecretVo (also requires depending on the zeroize crate directly - see its docs) |
Crates in this project
ddd-toolkit(this crate) - the facade; depend on this for normal use.ddd-toolkit-core- the domain/port traits and reference (in-memory) adapters, with no macro dependency.ddd-toolkit-macro- the derive macros, usable standalone alongsideddd-toolkit-coreor through this facade.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.