FAQ
Common questions about resumability, bundle size, and how Resuma compares to hydration-based frameworks.
What is resumability vs hydration?
Hydration re-executes your entire component tree on the client to attach event listeners. Resumability serializes signals and handler references into HTML during SSR; the client resumes only what the user interacts with — no full-tree replay.
Does Resuma run Rust in the browser?
No. Components always execute on the server. Client-side code is limited to a tiny runtime (~3 KB loader + lazy core) and small JS chunks translated from handler closures at compile time (rs2js in resuma-macros). Business logic stays in Rust.
How big is the client bundle?
Static pages ship zero JS. Interactive pages load loader.js (~1–2 KB gzipped), then core.js on first interaction. Handler and island chunks load on demand. See the benchmark page for measured numbers.
How does resumability compare to hydration?
Hydration re-runs components on the client to attach listeners. Resumability serializes signals and handler references during SSR; the client resumes only the interactions users trigger. Every #[component] is a resumable boundary; #[island] is optional for heavy lazy bundles.
Do I need Node.js?
Only if you rebuild the JS runtime from source. Prebuilt assets ship inside the resuma crate (assets/). For app development, Rust + cargo (or cargo install resuma) is enough.
Can I use Resuma without Flow?
Yes. ResumaApp supports single-page apps with manual route registration — ideal for counters, widgets, and embedded UI. Flow adds multi-page routing, loaders, submits, and middleware when you need a full site.
How do forms work without JavaScript?
The Form component renders a real HTML form with POST /_resuma/submit/:name. Progressive enhancement: the runtime intercepts submit when loaded, but forms work as plain POST without JS.
Is Resuma production-ready?
v0.x — APIs may evolve. Security defaults (CSRF, headers, rate limits) are built in. See Security and harden with the todo reference.
Where is the backend security reference?
examples/todo — guards, DTO validation, service layer, authorization. Docs: /docs/security/todo.