inspired by Django
Axum · SeaORM · Tera · Native CSRF · Built-in Admin
#[form(schema = user_schema, model = users::Entity)]
pub struct UserForm;
// Typed search via form
search!(@UserForm => Username = "alice")
.all(&db).await?;
// Direct access via objects
UserForm::objects.filter(...).first(&db).await?;
urlpatterns! {
"/" => view!{ index }, name = "index",
"/users" => view!{ list }, name = "user_list",
"/users/{id}" => view!{ detail }, name = "user_detail",
}
// Handler — DB accessible via request.engine.db
pub async fn detail(mut request: Request) -> AppResult<Response> {
let id = request.get_path_as::<i32>("id").unwrap_or(0);
...
}
builder::new(config)
.with_admin(|a| {
a.site_title("Administration")
.auth(RuniqueAdminAuth::new())
.page_size(15)
})
.build().await?
.run().await?
// Auto-generated CRUD from your SeaORM models
.middleware(|m| {
m.with_csp(|c| c.policy(SecurityPolicy::strict()))
.with_allowed_hosts(|h| h.host("mysite.com"))
.with_session_memory_limit(5 * 1024 * 1024, ...)
})
// CSRF enabled by default — cannot be disabled
// Rate limiting, LoginGuard, Host validation built-in
Everything you need
A complete framework, without compromising on security.
Django-like ORM
search!, objects, auto-generated migrations from your Rust models
Native Security
CSRF, CSP, rate limiting, host validation — built-in, not optional
Generated Admin
Auto-generated CRUD interface from your models, customizable
Typed Forms
Static declaration, automatic validation, file uploads
Tera Templates
Custom filters, tags, i18n, flash messages, macros
Axum / Tokio
Rust performance, native async, zero runtime overhead
Explore the demo
Each section is an interactive page of the demo-app.
Framework
Router
urlpatterns!, path parameters, named links
Templates & Tags
{% static %}, {% link %}, {% media %}, {% include "message.html" %}, {{ xxx | form | safe }}
Middlewares
CSRF, CSP, Rate Limiter, Login Guard, Host Validation, HTTPS
Flash Messages
Success, info, warning, error
Internationalization
Runique template language — 9 languages available
Sessions
MemoryStore, memory limits, automatic periodic cleanup
Macros
context_update!, context!, impl_from_error!
Error Pages
404, 500, 429, 502 — Runique page verification