rustio-admin
Django Admin, but for Rust. A small, focused admin framework for Postgres-backed Rust apps. From a
structto a working CRUD admin in under 50 lines of project code.
🚀 v0.1.0 released on 2026-05-07 — first public release on crates.io. Three crates landed together:
rustio-admin(the library),rustio-admin-macros(theRustioAdminderive), andrustio-admin-cli(therustiobinary:startproject,startapp,migrate,user,group,perm,doctor). See the v0.1.0 changelog for the full feature inventory and the release tag for an immutable reference.
What you get
#[derive(RustioAdmin)]on a plain struct → list / create / edit / delete pages.impl ModelAdminfor Django-style customisation (list_display,list_filter,search_fields,ordering,list_per_page).- DB-backed sessions, Argon2 passwords, 5-tier role hierarchy, per-model RBAC.
- Hyper + sqlx + minijinja under the hood. Postgres only. No Tailwind, no PostCSS, no build step — one hand-written stylesheet.
- Single binary deploy. Project templates and CSS are baked in via
include_str!; project overrides drop intotemplates/admin/.
Install
[]
= "0.1"
= { = "1", = ["macros", "rt-multi-thread"] }
= { = "0.4", = ["serde"] }
The CLI ships separately:
The 3-line idea
// accept every default
// In your `main`:
let admin = new.;
let router = register_admin_routes;
new.run.await?;
A model that wants more control fills in the ModelAdmin body:
For a complete project skeleton see examples/minimal/ and the docs/getting-started.md walkthrough.
Documentation
| Getting started | cargo new to a running admin in 10 minutes. |
ModelAdmin reference |
Every hook, every default, when to override. |
| Architecture | Module map, runtime, public API surface. |
| Strategic reset plan | Why the framework exists, what's in/out of scope. |
| Changelog | Per-release summary. |
Workspace layout
| Crate | Purpose |
|---|---|
rustio-admin |
The library. Re-exports the macros. |
rustio-admin-macros |
Proc-macros (re-exported from rustio-admin). |
rustio-admin-cli |
The rustio binary — startproject, startapp, migrate, user, group, perm, doctor. |
Status
v0.1.0 — released 2026-05-07. Browser-walked end-to-end against a local Postgres against both the examples/minimal skeleton and a fresh rustio startproject + rustio startapp flow; the classrooms project consumes the published crate. See the strategic reset plan for the design and the changelog for the feature inventory.
Future work tracks under separate milestones — v0.2 candidates include richer filter widgets (date range, multi-select), bulk actions on the list page, inline forms, and dashboard widgets. The schema-contract / drift-validator / AI-planner work that originally lived in this repo's predecessor stays explicitly out of scope and will, if it returns at all, ship as a separate rustio-pro-* family of crates.
Non-goals
rustio-admin is the admin layer and the auth/permissions/templates that surround it — nothing more. Not a full web framework. Not an ORM (the Model trait is a thin sqlx shim). Not a content management system. Not AI-augmented. Not multi-database (Postgres only, on purpose). Not schema-contract-driven (the schema-contract / drift-validator / AI-planner work belongs in a future Tier-2 crate, kept entirely out of this repo).
License
MIT — see LICENSE.