Runique A Rust web framework inspired by Django
Axum ยท SeaORM ยท Tera ยท Native CSRF ยท Built-in Admin
#[form(schema = blog, fields = [title, email, summary, website, content])]
pub struct BlogForm;
// Typed search (demo-app/src/backend/blog.rs)
search!(BlogEntity => Title icontains "runique")
.all(&db).await?;
search!(BlogEntity => Id eq id)
.first(&db).await?;
urlpatterns! {
"/" => view!{ index }, name = "index",
"/blog/liste" => view!{ blog_list }, name = "blog_list",
"/blog/{id}" => view!{ blog_detail }, name = "blog_detail",
}
// Handler โ path param via axum Path + request.engine.db
pub async fn blog_detail(
Path(id): Path<Pk>,
mut request: Request,
) -> AppResult<Response> {
...
}
RuniqueApp::builder(config)
.with_admin(admin::config)
.build().await?
.run().await?
// src/admin.rs โ typed ModelAdmin<blog::Entity>
ModelAdmin::new()
.list(|l| {
l.display([Title, Email, Website, Status])
.links([Title])
.filter([Status])
})
.form(|f| f.fields([Title, Email, Summary, Content, Status]))
.middleware(|m| {
m.with_allowed_hosts(|h| {
h.enabled(!is_debug())
.host("runique.io")
})
.with_csp(|c| {
c.policy(SecurityPolicy::strict())
.scripts(vec!["'strict-dynamic'"])
})
})
// 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
Typed Admin
Typed CRUD interface from your models via ModelAdmin, 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 }}
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