Rustango docs
← Rustango 0.60

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 Laravel Eloquent or Rails ActiveRecord, the shapes here will feel familiar. Most…

The admin

Rustango generates a complete admin UI from your models — a ready-made back-office for your data, with zero per-model boilerplate. Add #[derive(Model)]…

The operator console

A multi-tenant project has two kinds of administrator, and they never mix:

Serializers

A serializer turns a model instance into a typed, JSON-ready shape — and back again on the way in. Declare a struct, annotate its fields, and you get…

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.

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's answer: name a URL…

manage CLI reference

This is Rustango's command-line tool, like Laravel's artisan or Rails' rails command. In a project scaffolded via cargo rustango new, one binary runs…

Migrations & the migration engine

Rustango ships a model-driven migration engine: you edit your models, run makemigrations to generate a versioned JSON file describing the schema change…

Database tuning

Every database connection your app makes comes from a pool — a set of connections kept open and handed out to requests. The pool's defaults are chosen by…

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…

Logging

Logs are how a running app tells you what it did. Rustango builds on `tracing` — the same shape as Laravel's logging channels, but structured: an event…

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 Laravel or Rails, most of these will feel familiar — the…