Skip to content
forma.
v3.0
☰
Browse documentation
Start here
Build interfaces
Native rendering
Tooling
Security and operations
Architecture
Application guides
API reference

Docs/Native rendering

FORMA 3.0

The Rust crates

The native parser, derive macros and server integration in the Forma workspace.

View source ↗Markdown ↓Source 753be2a
On this page

Forma renders compiled TypeScript components as HTML in Rust, without a JavaScript server runtime. The three crates share the coordinated version of the four npm packages in this repository. Start with the current architecture and 3.0 upgrade guide.

CrateResponsibilityAPI reference
forma-irFMIR v3 validation, declared-props conversion and the native HTML walkerREADME, format
forma-ir-derive#[derive(PageProps)] for typed page dataREADME, declared props
forma-serverStartup binding, typed page rendering, explicit Browser shells, assets and response policyREADME

Startup and requests#

Load the asset manifest, call load_ir_modules, bind each SSR page to its Rust props type, and finalize Pages before opening the listener. Invalid modules and incompatible schemas refuse startup. A bound PageHandle<P> renders P with a RenderCtx and returns Result<PageResponse, RenderError>; the handler chooses its error response. It never falls back to an empty Browser shell after an SSR failure.

PageResponse keeps HTML, nonce, enforced CSP and response headers together. Its Axum IntoResponse implementation sends the complete response. render_browser_shell is the explicit Browser route path. The typed examples and limits are maintained in the server README, rather than duplicated here.

There is no WASM walker, Node renderer or server-function endpoint in the 3.0 surface. Applications use their server's own endpoint layer. The archived A2 overview retains the previous slot-injection and deprecated fallback APIs for historical reference.

Verification and publishing#

From the repository root, npm run check runs R17 across Rust and TypeScript, including the compiler-to-walker contracts and browser adoption checks. See testing for focused commands and releasing for the coordinated seven-package pipeline. A source checkout or passing crate suite alone is not packed-release qualification; P17 verifies the actual package set.

Find your next answer.

Search Forma 3.0 documentation, guides and examples.