The developer-first full-stack web framework designed obsessively for emotional productivity. Ditch the boilerplate and ship your startup today.
Built from the ground up for AI coders. Zero runtime magic, pure compilation, and automatic `.ai-rules` context injection makes Rullst perfectly legible to Cursor and Copilot without hallucinations.
Never fear breaking changes again. cargo rullst upgrade performs AST-based codemods in the background to automatically update your syntax when the framework evolves.
Compile to WebAssembly for Cloudflare Workers globally, backed by built-in Turso/libsql replication for 1ms database read latency worldwide.
Write frontend interactive components strictly in Rust (`#[client_component]`). They compile to lightweight Wasm, eliminating the need to write JavaScript for SPAs or Desktop apps.
Stop memorizing flags. The Rullst CLI guides you through project setup, database migrations, authentication, and cloud deployment interactively.
By combining Rust's memory safety, Tokio's async I/O, and Axum's routing, Rullst delivers unparalleled performance without sacrificing developer experience.
Higher is better (Hello World endpoint)
Lower is better (Idle memory usage)
Getting started is simple. See the basics below or visit our GitHub for the full guide.
No manual SQL. Use declarative macros to define your Active Record models.
#[derive(Orm, Clone)]
#[table("users")]
pub struct User {
pub id: i32,
pub name: String,
pub email: String,
}
Fetch data effortlessly and return JSON or HTML using concise syntax.
pub async fn get_users() -> Json<Vec<User>> {
let users = User::all().await.unwrap();
Json(users)
}
Bind your controller to an Axum-powered router natively.
Server::new()
.route(get, "/api/users", get_users)
.serve()
.await;