Architecture

Progressive control Planned

Convenience should never be a trap. Clamp is designed so you can start with defaults and take control of any part later, without switching frameworks.

Status. This is the design model that guides the prototypes. Only the smallest level, Pico, is a finished feature.

Use → Configure → Extend → Replace → Own

USE        take the default
 ↓
CONFIGURE  change its settings
 ↓
EXTEND     add to it
 ↓
REPLACE    swap in your own provider, explicitly
 ↓
OWN        drop to plain Rust for that part

Control and responsibility move together: the further down you go, the more of the behaviour is yours to maintain. Explicit replacement already exists in the prototype — selecting a different provider includes only that provider's own dependencies.

From pico to platform

Application size is not something you declare. It emerges from what you compose.

ScaleWhat it addsStatus
PicoPlain Rust plus Clamp::run. Zero dependencies, zero bytes of binary overhead measured.Works
NanoFoundations and small, direct composition — like example 01's injected Clock.Prototype
MicroKernel-resolved modules — like example 02.Prototype
StandardA normal application with lifecycle, configuration and integrations.Planned
PlatformSeveral processes from one blueprint, up to distributed systems. Example 04 is the first step.Planned

Profiles

A profile will be a preset — defaults, recommended modules and policies — for a kind of software: CLI, service, worker, game, simulation, device. Profiles are flat and combinable. They are never a separate edition of the framework, and nothing a profile gives you is out of reach without it. Planned

Escape hatches are first-class

Existing Rust code stays first-class. Adopting Clamp must not force a rewrite of working Axum, SQLx or Tokio code, and leaving a part of Clamp must be as supported as entering it: a paved road, not a walled garden.