Documentation README

Runique — Django-inspired Rust Framework

Rust Tests passing License Version Crates.io Runique

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 runique crate. demo-app is used as a validation/testing application for framework behavior.

🌍 Languages: English | Français


What this repository contains

Workspace version (source of truth): 2.1.15.


Core capabilities

Main public modules are exposed from runique/src/lib.rs.


Installation

git clone https://github.com/seb-alliot/runique
cd runique
cargo build --workspace
cargo test --workspace

Detailed guide: Installation


Quick usage

use runique::prelude::*;
use runique::app::builder::RuniqueAppBuilder;

mod url; // urlpatterns!{} — your routes

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    password_init(PasswordConfig::auto_with(Manual::Argon2));

    let config = RuniqueConfig::from_env();
    let db = DatabaseConfig::from_env()?.build().connect().await?;

    RuniqueAppBuilder::new(config)
        .routes(url::routes())
        .with_database(db)
        .statics()
        .middleware(|m| {
            m.with_allowed_hosts(|h| h.enabled(!is_debug()).host("localhost:3000"))
        })
        .build()
        .await?
        .run()
        .await?;

    Ok(())
}

CLI (actual commands)

runique provides:

⚠️ Warning — rolling back migrations runique makemigrations generates 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:

Admin resources are declared in src/admin.rs using admin!.

The workflow:

  1. parse admin! declarations
  2. generate admin code under src/admins/
  3. refresh on changes with watcher mode

Current beta limits:

Admin docs: Admin


Features and database backends

Default features:

Selectable backends:


Test and coverage snapshot

cargo llvm-cov --tests --package runique --ignore-filename-regex "admin" --summary-only

Full per-file breakdown: docs/couverture_test.md


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.

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


Project status

For the detailed, continuously updated state report, see PROJECT_STATUS.md.

Resources


License

MIT — see LICENSE