Rust web framework · v0.1.0 · beta

A site is declared, not coded

Routes, content types and languages live in configuration, and Rustelo turns them into a typed Rust web application at build time.

Build. Deploy. Deliver.

One core · two rendering profiles · no framework forks

Everything configurable, nothing hardcoded.

Declared, not coded

Everything a site is — its routes, its content types, its languages — lives in configuration. Rustelo turns that declaration into a typed Rust application at build time, and the core stays untouched.

NICKEL · BUILD.RS

Configuration that compiles

Routes, pages, menus and the Fluent registry are generated from Nickel configuration by build.rs into OUT_DIR and included at compile time. A malformed route table is a build error, not a page that 404s in production.

HTMX-SSR · LEPTOS HYDRATION

Two rendering profiles, one core

Choose per site or per route: server-rendered HTML with HTMX and no WebAssembly, or Leptos SSR with WASM hydration. Same content, same configuration; a site with no hydrated route skips the wasm32 build entirely.

OVERRIDES · PLUGINS

Extend without forking

A layered override system — Local over Feature over Template over Framework — and compile-time plugins through ResourceContributor and PageContributor let a site change anything without modifying framework source.

Architecture

Architecture Architecture

Three layers — your application, the framework ports (rustelo_web, rustelo_auth, rustelo_content) and the foundation — with build-time code generation from Nickel configuration underneath.

How it works

Declare, generate, serve.

1

Declare in Nickel

Write routes, menus, content kinds, themes and languages as typed Nickel configuration. Languages are discovered from configuration and content; none is hardcoded.

2

Generate at build time

build.rs reads the configuration and generates routes.rs, pages.rs and menus.rs into OUT_DIR; include!() inlines them. The generated code is read-only — the configuration is the source of truth.

3

Serve from one binary

An Axum server renders every route in its profile — HTMX fragments or Leptos hydration — with authentication, RBAC, content, email and i18n composed through Cargo features.

A site you declare, review and rebuild

Configuration, templates and content are plain files under version control; the framework stays updatable because nothing in it was edited. Start from the framework overview or read how it is built.