# Rullst book: full text > Rullst is a modular, strictly typed Rust framework suite (Tokio, Axum, Tower, SQLx) for full-stack web applications: Active Record ORM, server-rendered html! views with HTMX, authentication, security middleware and the cargo-rullst CLI. This index lists every page of the Rullst book in reading order; llms-full.txt holds their full Markdown. --- # Welcome to Rullst Source: https://rullst.github.io/Rullst/book/index.html # Intelligent, Security-Conscious, and Designed for Effortless Productivity Because With Rullst, We Rule! Rullst is a modular Rust framework suite built on Tokio, Axum, Tower, and SQLx for full-stack applications and the product workflows around them. Version 13 is in prerelease: `13.0.0-alpha.4` is published and is the 13.0 feature freeze. The v12 line reached end of life on 16 October 2026. Use the capability and release documents to distinguish implemented behavior from roadmap work and application-specific responsibilities. This book is built from the `main` branch, which can be ahead of the latest prerelease; the **v13 Preview** chapters describe features that are new in v13. **Welcome to the Rullst documentation.** Build a small application, understand the code behind it, then explore the tools that fit your next idea. > **New here? [Start with the guided learning path →](https://rullst.github.io/Rullst/book/start-here.html)** > > Choose a generated application, a hand-written first route or a JSON API. > Each path tells you what to run, what to expect and where to go next. ## Documentation Hub - [✨ Why Rullst?](https://rullst.github.io/Rullst/book/why-Rullst.html) - [📖 Getting Started & Starters](https://rullst.github.io/Rullst/book/1-getting-started.html) - [🤖 Rullst AI: Developing with Autonomous Agents](https://rullst.github.io/Rullst/book/2-rullst-ai.html) - [📊 Rullst Studio: Real-Time Monitoring & Radar](https://rullst.github.io/Rullst/book/3-rullst-studio.html) - [⚙️ Rullst Nexus: Explicit Admin CMS](https://rullst.github.io/Rullst/book/4-rullst-nexus.html) - [💳 Rullst Capital: SaaS Billing & Revenue Dashboard](https://rullst.github.io/Rullst/book/5-rullst-capital.html) - [🧠 Integrating AI into Rullst](https://rullst.github.io/Rullst/book/6-ai-integration-tutorial.html) - [🍳 Rullst Cookbook & Tutorials](https://rullst.github.io/Rullst/book/tutorials/01-hello-world.html) - [📜 Framework Spec](https://rullst.github.io/Rullst/book/spec.html) - [🗺️ Blueprints Roadmap](https://rullst.github.io/Rullst/book/blueprints_roadmap.html) - [💻 CLI Reference](https://rullst.github.io/Rullst/book/cli_reference.html) - [🛡️ Audit Report](https://github.com/Rullst/Rullst/blob/main/AUDIT.md) - [📦 View on Crates.io](https://crates.io/crates/rullst) ## For AI assistants The site publishes [`llms.txt`](https://rullst.github.io/Rullst/llms.txt), an index of every page of this book in reading order, and [`llms-full.txt`](https://rullst.github.io/Rullst/llms-full.txt), the full Markdown of those pages in one file. Both are generated from this book's sources each time it is published, so they describe the same `main` branch. ## Learn the foundations, then explore - 🚀 **Measured performance:** Criterion suites and CI track regressions; application latency must be measured on the target workload. - 🧩 **Server-rendered UI:** `html!` and HTMX-oriented scaffolds are the audited default. LiveView and Wasm Island primitives exist, while turnkey Leptos/Dioxus adapters remain roadmap work. - 📖 **Interactive Scalar Docs (`/docs`):** `cargo rullst make:scalar` scaffolds an OpenAPI viewer for your reviewed specification. - ☸️ **Kubernetes manifests:** `cargo rullst make:k8s` scaffolds manifests that probe `/health` and `/ready`. - 📡 **Rullst Radar & Prometheus:** Process/Tokio observations and a Prometheus text exporter, with unavailable probes reported explicitly. - 🛡️ **Local AI option:** Use an Ollama endpoint when prompts should stay on infrastructure you control; network isolation remains a deployment duty. - 📦 **Batteries Included:** ORM (rullst-orm), Auth, Revenue Dashboard, Jobs, Mail, Scheduler, Cache, Security. --- # Start Here: Your First Idea in Rust Source: https://rullst.github.io/Rullst/book/start-here.html # Your first idea, running in Rust You do not need to understand every Rullst crate before writing your first application. Start small, make one thing work, and learn what each layer does as your product needs it. > **This guide targets the v13 prerelease, 13.0.0-alpha.4.** The v12 line > reached end of life on 16 October 2026 and a new 12.x project no longer > resolves its dependencies, so install the CLI and pin the framework with the > exact version, as [Getting Started](https://rullst.github.io/Rullst/book/1-getting-started.html) shows: Cargo never > selects a prerelease on its own. Upgrading an existing application? Follow > the [v13 migration guide](https://rullst.github.io/Rullst/book/migration-v13.html). This book is built from `main`, > where v13 is in development. ## Pick your starting line | What you want to do | Start here | Your first visible result | | --- | --- | --- | | “Take me from an empty folder to a complete app.” | [Zero to a complete app](https://rullst.github.io/Rullst/book/tutorials/zero-to-complete-app.html), about an hour | Sign-in, owner-only CRUD pages, tests, a security report and a production build | | “Give me an application I can explore.” | [CLI installation and starters](https://rullst.github.io/Rullst/book/1-getting-started.html) | Generated Rust, a local web page and a development loop | | “Show me how the framework actually works.” | [Zero to Hello Rullst](https://rullst.github.io/Rullst/book/tutorials/01-hello-world.html) | One complete typed route you write yourself | | “I need a backend for another client.” | [Your first JSON REST API](https://rullst.github.io/Rullst/book/tutorials/rest-api-quickstart.html) | A real HTTP response you can inspect with curl | For the simplest first experiment, choose **Blank + SQLite**, or Blank with `--no-database` if you do not need persistence yet. The larger SaaS starter, and the LMS, ERP, Portfolio and Blog [examples](https://rullst.github.io/Rullst/book/examples.html), have more moving parts and longer first builds. You can explore them after your toolchain and local workflow are working. ## A small loop that teaches a lot 1. **Run it.** Reach the local page or JSON endpoint before adding features. 2. **Find the code.** Open `src/main.rs`, then the generated controllers, models and pages that exist in your chosen starter. 3. **Make one visible change.** Edit a heading or response field. With `cargo rullst dev`, watch the rebuild and process restart; with plain `cargo run`, stop and restart it yourself. 4. **Break something safely.** Introduce a small syntax error in your local experiment. Read the compiler diagnostic, correct it and save again. The supervisor keeps the old application running when compilation fails. 5. **Verify the result.** Reload the page or repeat the request. A successful build is only the first check; the response should do what you intended. See [exact restart and state boundaries](https://rullst.github.io/Rullst/book/tutorials/51-authenticated-hot-reload.html). Do not use production databases or credentials for this exercise. ## Build your understanding, one layer at a time Looking for a type, a feature or a connected REST learning path? Use the [API reference index](https://rullst.github.io/Rullst/book/api-reference.html) to move between the guides and the versioned Rust documentation. | Next question | Guide | | --- | --- | | Where do generated files go? | [CLI generators](https://rullst.github.io/Rullst/book/tutorials/02-cli-generators.html) | | How do I save and read data? | [Active Record CRUD](https://rullst.github.io/Rullst/book/tutorials/03-active-record-crud.html) and [migrations](https://rullst.github.io/Rullst/book/tutorials/05-migrations-and-seeds.html) | | How does the page become interactive? | [HTML and HTMX](https://rullst.github.io/Rullst/book/tutorials/06-htmx-zero-bundle.html) | | How do requests reach my handlers? | [Routes and middleware](https://rullst.github.io/Rullst/book/tutorials/08-routing-and-middlewares.html) | | Who is allowed to access a record? | [Ownership, RBAC and IDOR](https://rullst.github.io/Rullst/book/tutorials/13-rbac-authorization.html) | | How do I update the framework later? | [Assisted upgrades](https://rullst.github.io/Rullst/book/tutorials/36-assisted-framework-upgrades.html) | | Which crates are stable, and which are experimental? | [Maturity tiers](https://rullst.github.io/Rullst/book/maturity.html) | You can use an AI assistant while learning. Ask it to explain the generated files, point to the exact APIs and show a failing test before a bug fix. Treat its output as a proposed change, not as proof. Rullst's [architecture specification](https://rullst.github.io/Rullst/book/spec.html) is the common reference for both of you. ## When the first run does not work | What you see | Check first | | --- | --- | | `cargo rullst` is unknown | Install the matching CLI, then reopen your terminal if its binary directory is not on `PATH`. | | The first build is taking a long time | Source builds compile Rust dependencies. Keep the output visible; elapsed time is not a reliable failure signal. | | A database connection fails | Confirm the selected backend and local `.env` values. PostgreSQL/MySQL/MariaDB need a running service; SQLite does not need a separate server. | | The app cannot bind its port | Stop the conflicting process you own, or configure another port and restart the development command. | | Optional persistence feels confusing | Selecting none is valid. Add only the specialized stores your application actually needs. | | A command differs from a screenshot | Use the installed CLI's `--help` and the matching source documentation. Screenshots are recorded examples. | If you are still stuck, share the command, operating system, Rust version, framework commit and a minimal reproduction in an [issue](https://github.com/Rullst/Rullst/issues) or on [Discord](https://discord.com/invite/2ntKFtsSjw). Remove secrets and personal data first. Send security vulnerabilities privately using the [security policy](https://github.com/Rullst/Rullst/security/policy). ## Before this becomes a real product A generated app is a foundation, not a deployment approval. Review authentication, ownership, secrets, database backups and migrations, external provider setup and release status. Start with the [security architecture](https://rullst.github.io/Rullst/book/security-architecture.html), choose features using the [capability status](https://rullst.github.io/Rullst/book/capability-status.html), check each crate's [maturity tier](https://rullst.github.io/Rullst/book/maturity.html) (Core, Extension or Experimental), and measure your own workload. **Ready? [Create your first application →](https://rullst.github.io/Rullst/book/1-getting-started.html)** --- # Getting Started & Starters Source: https://rullst.github.io/Rullst/book/1-getting-started.html # Getting Started Welcome to the **Rullst** Getting Started guide! **Your goal:** install the matching v13 CLI, generate a small application, open it locally and make your first change. Prefer to write the first route yourself? Use [Zero to Hello Rullst](https://rullst.github.io/Rullst/book/tutorials/01-hello-world.html). Rullst is a strictly typed Rust framework suite for full-stack applications, designed around explicit APIs, measurable performance, and defense-in-depth defaults. ## 1. Installation First, ensure you have Rust installed. The official and recommended way is to visit [rustup.rs](https://rustup.rs/). **For macOS and Linux:** ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` **For Windows:** Download and run `rustup-init.exe` from the website. Next, install the **Rullst CLI** from the same release train as the framework. This book is built from `main`, where v13 is in development. The v12 line reached end of life on 16 October 2026 (12.3.0 was its last release, and a new 12.x project no longer resolves its dependencies after crates.io yanked the `zip` releases its Studio needs), so install the v13 prerelease. Name its exact version: Cargo never selects a prerelease on its own, so neither a plain `cargo install cargo-rullst` nor `^13` installs it: ```bash cargo install cargo-rullst --version =13.0.0-alpha.4 --locked ``` Pin the framework the same way in `Cargo.toml` (`"=13.0.0-alpha.4"`); the [v13 migration guide](https://rullst.github.io/Rullst/book/migration-v13.html) explains why and what changed. Source reviewers who intentionally need checkout-local changes can instead clone this repository and install the CLI from that exact checkout. On `main` this installs the v13 development CLI: ```bash git clone --branch main https://github.com/Rullst/Rullst.git cd Rullst cargo install --locked --path cargo-rullst cd .. ``` When installed from source, the CLI reuses the exact checkout from which it was compiled, even when project creation is invoked from another directory, provided that checkout has not been moved or deleted. Generated manifests therefore contain absolute path dependencies and are not portable. Running from the repository root remains an explicit fallback. Prefer the published prerelease and its matching registry packages for ordinary applications. Cargo installs the `cargo-rullst` and `rullst` executables into `$CARGO_HOME/bin` (`~/.cargo/bin` by default). To install elsewhere, set `CARGO_INSTALL_ROOT` or pass `--root
"Your first typed route is running."