puerto-0.13.0 is not a library.
Puerto
Puerto is a Rust CLI that scaffolds DDD backends following Clean Architecture (Hexagonal / Ports & Adapters): a 3-crate workspace with a poem-openapi REST API, dependency injection generated from a manifest, and tests for every layer. Website and docs: https://puerto-rs.vercel.app.
Install
--locked builds with the dependency versions Puerto was tested with; without it, cargo may pick
newer transitive dependencies that require a newer Rust than yours.
Quick start
Commands
|||
Field syntax: name:String, price:i64! (unique), note:opt:String, tags:vec:String,
name:Name:String (value object), status:Status:enum:Active/Archived, email:Email (shared VO).
What every generated project gets
business(domain + application),infrastructure(in-memory or Postgres adapters),presentation(REST API) — dependencies point inward onlypuerto.tomlas the source of truth;presentation/src/generated/bootstrap.rswired from it- Unit tests per use case, Object Mothers,
mockallmocks; Postgres integration tests with--db GET /health,GET /health/ready(pings the database), graceful shutdown on SIGTERM- Error bodies with a machine-readable code in
name(product.not_found); validation is422 - Logging through
tracing; a pinned toolchain (rust-toolchain.toml), edition 2024 AGENTS.md+CLAUDE.mdinstructions for coding agents- A
make lint(clippy-D warnings) that passes out of the box
License
MIT