1 unstable release

0.1.0 Nov 29, 2025

#2352 in Rust patterns


Used in 2 crates

MIT/Apache

49KB
1K SLoC

SketchDDD Parser

Parser for the SketchDDD domain-specific language.

Example

context Commerce {
  objects { Customer, Order, LineItem, Product, Money }

  morphisms {
    placedBy: Order -> Customer
    items: Order -> List<LineItem>
    product: LineItem -> Product
    price: LineItem -> Money
  }

  aggregate Order {
    root: Order
    contains: [LineItem]
    invariant: totalPrice = sum(items.price)
  }

  value Money {
    amount: Decimal
    currency: Currency
  }

  enum OrderStatus = Pending | Confirmed | Shipped | Cancelled
}

sketchddd-parser

DSL parser for SketchDDD domain models.

Example

context Commerce {
  objects { Customer, Order, LineItem, Product, Money }

  morphisms {
    placedBy: Order -> Customer
    items: Order -> List<LineItem>
  }

  aggregate Order {
    root: Order
    contains: [LineItem]
  }

  value Money {
    amount: Decimal
    currency: Currency
  }

  enum OrderStatus = Pending | Confirmed | Shipped
}

License

Licensed under either of MIT or Apache-2.0 at your option.

Dependencies

~2–3MB
~59K SLoC