Guides
Models
A model is a Rust struct that maps to a database table. Add #[derive(Model)], annotate the fields, and Rustango generates the schema, a type-safe query…
ORM cookbook
Patterns for the Rustango ORM beyond the basics. If you come from Django's ORM, Laravel Eloquent, or Rails ActiveRecord, the shapes here will feel…
The admin
Rustango generates a complete admin UI from your models — the same idea as Django's admin or a Laravel Nova/Filament panel, but with zero per-model…
Serializers
A serializer turns a model instance into a typed, JSON-ready shape — and back again on the way in. It's Rustango's answer to a Django REST Framework…
ViewSets — CRUD REST APIs
A ViewSet turns a model into a full REST resource — endpoints to list, create, read, update and delete records — from one declaration. (It's Rustango's…
HTML views — server-rendered pages
An HTML view turns a model into server-rendered web pages — a list page, a detail page, and create/edit/delete forms — from one declaration. It's the…
OpenAPI
Rustango generates an OpenAPI 3.1 spec for your API and serves it with Swagger UI / Redoc — no annotations to hand-maintain. Point the generator at the…
The QUERY method
QUERY (RFC 10008, a Proposed Standard published in June 2026) is the "safe GET with a body." It's safe and idempotent like GET, but the query criteria…
MCP server
The Model Context Protocol (MCP) is the open standard for letting an AI agent — Claude, an IDE assistant, your own LLM app — securely call your…
URL names & reverse
Hardcoding URLs (/posts/42) all over handlers and templates is fragile — change a route and every literal breaks silently. Rustango gives you Django's…
manage CLI reference
This is Rustango's command-line tool, like Django's manage.py, Laravel's artisan, or Rails' rails command. In a project scaffolded via cargo rustango new…
Migrations & the migration engine
Rustango ships a Django-style migration engine: you edit your models, run makemigrations to generate a versioned JSON file describing the schema change…
Middleware
Middleware is code that runs around every request — before your handler sees it and after it produces a response. It's where cross-cutting concerns live…
Background jobs
Some work shouldn't happen during a request — sending a welcome email, resizing an upload, syncing a third-party API. Doing it inline makes the user wait…
WebSockets & SSE
Most requests are one-shot: ask, answer, done. Real-time features are the exception — a live notification, a progress bar, a dashboard that updates…
Caching
Caching stores the result of expensive work — a heavy query, a rendered fragment, a third-party API call — so the next request gets it instantly instead…
Files, uploads & media
Almost every app stores user files — avatars, attachments, exported reports, images. Rustango gives you a Storage trait with swappable backends (local…
Internationalization (i18n)
Internationalization is serving your app in the user's language. Rustango splits it into two halves: resolving which locale a request wants (cookie →…
Sending email
Welcome messages, password resets, receipts, alerts — most apps send transactional email. Rustango gives you a Mailer trait with swappable backends…
Testing
Fast, reliable tests need to drive your app the way a client does — without booting a server or touching the network. Rustango's TestClient runs your…
Security guide
This guide covers every security feature Rustango ships and how to combine them. If you come from Django, Laravel, or Rails, most of these will feel…