Modular Rust applications

Build once,
reuse everywhere.

A Rust framework for building web and backend applications as one deployable program, out of modules you can reuse in the next application. Ordinary Rust and Cargo; the compiler checks the wiring.

  • One deployable process
  • Compile-time composition
  • No service locator
AdaptersHTMXRESTgRPCmessage consumerCLI
TraitNoteswhat it does — no protocol, no storage
ImplementationsTimescaleDBPostgreSQLSQLitemarkdown filesremote service
Adapters translate a client into calls on the trait; implementations carry the same trait out with real storage or services. The composition root picks one of each.
01

Modular

Every capability is a contract with replaceable implementations and adapters. Swap the database, the UI, or the caller without rewriting the rules between them.

02

Fast by construction

Static dispatch, typed ports, and compile-time composition. No runtime service locator, reflection, or hidden dependency graph on the request path.

03

Clear code

Plain Rust types and explicit constructors. The composition root shows exactly which implementation and adapter this application runs.

The registry

Start from working pieces

The framework ships contracts, adapters, implementations, and stacks as ready crates. Compose the ones an application needs: a new app is assembled, not written from zero.

What you get

Production pieces, ready to compose

Each capability is a crate with a contract, concrete implementations, and transport adapters. Add the ones this application needs; leave the rest out.

One module, several callers

Reuse is the point

A module keeps its rules independent of the database, the interface, and the caller, so the same crate runs in a web API and a command-line application unchanged.

One application · one process
notesprojectstasks
Modules call each other in-process through contracts.
Another application · same module
web APIcommand-line app
notesthe same crate, reused
No copying of the rules — add the crate, compose it.

The browser starter

A complete application, already built

Sign-in, projects, tasks, search, pagination, and a database, composed from framework crates and rendered on the server. No single-page framework required.

Server-rendered sign-in pageProject and task workspace