| Crates.io | sketchddd |
| lib.rs | sketchddd |
| version | 0.1.0 |
| created_at | 2025-11-29 22:41:59.249042+00 |
| updated_at | 2025-11-29 22:41:59.249042+00 |
| description | A Categorical Framework for Domain-Driven Design |
| homepage | |
| repository | https://github.com/ibrahimcesar/SketchDDD |
| max_upload_size | |
| id | 1957624 |
| size | 11,995 |
A Categorical Framework for Domain-Driven Design.
Build precise domain models visually or with code.
SketchDDD bridges the gap between domain experts and developers by providing precise mathematical definitions for DDD concepts using category theory.
| DDD Concept | Mathematical Definition |
|---|---|
| Bounded Context | Sketch (graph + equations + limits) |
| Aggregate | Limit cone with root |
| Value Object | Limit with structural equality |
| Context Map | Sketch morphism |
[dependencies]
sketchddd = "0.1"
use sketchddd::prelude::*;
// Create a bounded context
let mut ctx = BoundedContext::new("Commerce");
// Add entities
let customer = ctx.add_entity("Customer");
let order = ctx.add_entity("Order");
// Add value objects
let money = ctx.add_value_object("Money");
// Add enumerations
let status = ctx.add_enum("OrderStatus", vec![
"Pending".into(),
"Confirmed".into(),
"Shipped".into(),
]);
sketchddd - This crate (facade)sketchddd-core - Core data structuressketchddd-parser - DSL parsersketchddd-codegen - Code generationsketchddd-viz - Visualizationsketchddd-cli - Command-line toolLicensed under either of MIT or Apache-2.0 at your option.