Resuma product map
One crate to install — layered products like Qwik + Qwik City or Solid + SolidStart.
Layers
| # | Product | Rust | Purpose |
|---|---|---|---|
| 1 | Resuma | resuma | Signals, view!, resumability, ResumaApp |
| 2 | Resuma Flow | resuma::flow | FlowApp, pages, loaders, actions |
| 3 | Resuma Macros | resuma-macros | view!, #[component], rs2js |
| 4 | Resuma Runtime | runtime/ | Browser loader + core (/_resuma/*.js) |
| 5 | Resuma Client | client/resuma-client.ts | TypeScript widgets via ClientComponent |
| 6 | Resuma CLI | resuma feature | new, dev, build, update |
When to use what
- Resuma — ResumaApp for single-page apps, widgets, resumable UI.
- Resuma Flow — FlowApp + src/pages/ for multi-page apps.
- Resuma Client — ClientComponent for TypeScript bundles (Three.js, charts).
Users depend on a single crate:
[dependencies]
resuma = "0.3"
tokio = { version = "1", features = ["full"] }Everything re-exports through resuma::prelude:
use resuma::prelude::*;
// ResumaApp, view!, #[component], #[server]
// FlowApp, #[load], #[submit], ClientComponent, client_assetProject structure (Resuma Flow)
my-app/
src/
main.rs # FlowApp bootstrap
pages/
index.rs # GET /
about.rs # GET /about
client/ # optional — Resuma Client (TypeScript)
resuma-client.ts
components/
Cargo.toml # resuma + tokio onlyCLI commands
cargo install resuma
resuma new my-app # static SSR (default)
resuma new my-app --template todo # full showcase
resuma new my-app --template flow-fullstack # Flow + SQLx + users CRUD
resuma add sqlx # add SQLx to existing project
resuma add turso # add Turso/libSQL client
resuma dev
resuma dev --open # open browser
resuma build
resuma routes --generate --path src/pages # Flow apps onlyPublished crates
Only two crates ship on crates.io: resuma (runtime) and resuma-macros (proc-macros — required by Rust).
| Crate | crates.io | docs.rs |
|---|---|---|
resuma | crates.io/crates/resuma | docs.rs/resuma |
resuma-macros | crates.io/crates/resuma-macros | docs.rs/resuma-macros |
API map
| Concept | Product | API |
|---|---|---|
| Component | Resuma | #[component] + view! |
| Server RPC | Resuma | #[server] |
| Server data loader | Resuma Flow | #[load] |
| Form mutation | Resuma Flow | #[submit] |
| Request middleware | Resuma Flow | #[middleware] |
| File-based pages | Resuma Flow | src/pages/ |
| TS client widget | Resuma Client | ClientComponent, client_asset() |