Runique β Django-inspired Rust Framework
Runique is a web framework built on Axum, focused on type-safe forms, security middleware, template rendering, ORM integration, and a code-generated admin workflow.
Current state: active development. The framework source of truth is the
runiquecrate.demo-appis used as a validation/testing application for framework behavior.
π Languages: English | FranΓ§ais
What this repository contains
runique/β framework crate (main product)demo-app/β test/validation app for framework developmentdocs/β EN/FR documentation
Workspace version (source of truth): 2.1.15.
Core capabilities
- Type-safe form system (
forms, extractors, validators, renderers) - Routing macros and URL helpers
- Tera template integration and context helpers
- Security middleware (CSRF, CSP, allowed hosts, sanitization, auth/session)
- SeaORM integration + migration tooling
- Flash message system
- Admin beta (
admin!macro + daemon-generated CRUD code)
Main public modules are exposed from runique/src/lib.rs.
Installation
Detailed guide: Installation
Quick usage
use *;
async
CLI (actual commands)
runique provides:
runique new <name>runique start [--main src/main.rs] [--admin src/admin.rs]runique create-superuserrunique makemigrations --entities src/entities --migrations migration/src [--force false]runique migration up|down|status --migrations migration/src
β οΈ Warning β rolling back migrations
runique makemigrationsgenerates migrations while preserving the chronological order of the migration system. When you need to roll a migration back, prefer the SeaORM CLI: it keeps the migration tracking table synchronized with the actual schema state. Mixing rollback tooling can desynchronize migration tracking.
Admin beta status
Admin daemon behavior in start:
- checks whether
.with_admin(...)exists insrc/main.rs - starts the admin watcher when enabled
- otherwise exits with an explicit hint
Admin resources are declared in src/admin.rs using admin!.
The workflow:
- parse
admin!declarations - generate admin code under
src/admins/ - refresh on changes with watcher mode
Current beta limits:
- mostly resource-level permissions
- generated folder overwrite (
src/admins/) - iterative hardening still in progress
Admin docs: Admin
Features and database backends
Default features:
ormall-databases
Selectable backends:
sqlitepostgresmysqlmariadb
Test and coverage snapshot
- Reported tests: 2011+ passing
- Coverage snapshot (
2026-05-24, packagerunique):- Functions: 78.32%
- Lines: 76.05%
- Regions: 73.93%
Sessions
CleaningMemoryStore replaces the default MemoryStore with automatic expired-session cleanup, a two-tier watermark system (128 MB / 256 MB), and priority-based protection for authenticated sessions.
- Low watermark: background purge of expired anonymous sessions
- High watermark: synchronous emergency purge + 503 refusal if still exceeded
protect_session(&session, duration_secs)β marks an anonymous session as untouchable until a given timestampuser_idkey β automatically protects authenticated sessions
Full reference: Sessions
Environment variables
All behavior is configurable via .env. Key variables:
RUNIQUE_SESSION_CLEANUP_SECS=60
RUNIQUE_SESSION_LOW_WATERMARK=134217728
RUNIQUE_SESSION_HIGH_WATERMARK=268435456
SECRET_KEY=your-secret-key
DATABASE_URL=sqlite://db.sqlite3
Full reference: Environment variables
Documentation
- Installation
- Architecture
- Configuration
- Routing
- Forms
- Model/Schema
- Templates
- ORM
- Middlewares
- Flash Messages
- Examples
- Admin beta
- Sessions
- Environment variables
Project status
For the detailed, continuously updated state report, see PROJECT_STATUS.md.
Resources
License
MIT β see LICENSE