runique 1.1.11

A Django-inspired web framework for Rust with ORM, templates, and comprehensive security middleware
Documentation
# πŸš€ Runique - Django-inspired Rust Web Framework


> **⚠️ Note**: This documentation has been generated with AI assistance. While care has been taken to ensure accuracy, some links or details may contain errors. Please report issues on [GitHub]https://github.com/seb-alliot/runique/issues.

[![Rust](https://img.shields.io/badge/rust-1.70%2B-orange)]()
[![Tests](https://img.shields.io/badge/tests-36%2F36%20passing-brightgreen)]()
[![License](https://img.shields.io/badge/license-MIT-green)]()
[![Version](https://img.shields.io/badge/version-1.1.1-blue)]()
[![Crates.io](https://img.shields.io/crates/v/runique)]()

A modern and comprehensive Rust web framework inspired by Django, for building robust and performant web applications.

🌍 **Languages** : [English]#-installation | [πŸ‡«πŸ‡· FranΓ§ais]README.fr.md

## πŸ“š Table of Contents


- πŸš€ [Installation]#-installation
- πŸ—οΈ [Architecture]#️-architecture
- βš™οΈ [Configuration]#️-configuration
- πŸ›£οΈ [Routing]#️-routing
- πŸ“ [Forms]#-forms
- 🎨 [Templates]#-templates
- πŸ—„οΈ [ORM]#️-orm
- πŸ”’ [Middleware]#-middleware
- πŸ’¬ [Flash Messages]#-flash-messages
- πŸŽ“ [Examples]#-examples

---

## πŸš€ Installation


**Full Documentation** : [Installation Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/01-installation.md)

Quick start:

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

πŸ‘‰ **Read** : [docs/en/01-installation.md](https://github.com/seb-alliot/runique/blob/main/docs/en/01-installation.md) for complete details

---

## πŸ—οΈ Architecture


**Full Documentation** : [Architecture Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/02-architecture.md)

Overview of Runique's architecture:

```
Runique Framework
β”œβ”€β”€ Forms System      # Type-safe forms
β”œβ”€β”€ Routing Engine    # URL pattern routing
β”œβ”€β”€ Template Engine   # Tera templates
β”œβ”€β”€ Middleware Stack  # Security & headers
β”œβ”€β”€ ORM Layer         # SeaORM integration
└── Utils             # Helpers and utilities
```

πŸ‘‰ **Read** : [docs/en/02-architecture.md](https://github.com/seb-alliot/runique/blob/main/docs/en/02-architecture.md) for internal structure

---

## βš™οΈ Configuration


**Full Documentation** : [Configuration Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/03-configuration.md)

Configure your server and application:

```rust
let settings = Settings {
    server: ServerConfig { ... },
    database: DatabaseConfig { ... },
    security: SecurityConfig { ... },
};
```

πŸ‘‰ **Read** : [docs/en/03-configuration.md](https://github.com/seb-alliot/runique/blob/main/docs/en/03-configuration.md) for all options

---

## πŸ›£οΈ Routing


**Full Documentation** : [Routing Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/04-routing.md)

Define your routes with Axum's `Router`:

```rust
use axum::routing::{get, post};

fn routes() -> Router {
    Router::new()
        .route("/", get(views::home))
        .route("/api/users", post(views::create_user))
}
```

πŸ‘‰ **Read** : [docs/en/04-routing.md](https://github.com/seb-alliot/runique/blob/main/docs/en/04-routing.md) for patterns and options

---

## πŸ“ Forms


**Full Documentation** : [Forms Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/05-forms.md)

Create forms easily with `#[derive(RuniqueForm)]`:

```rust
#[derive(RuniqueForm)]

pub struct UserForm {
    #[field(label = "Username", required, min_length = 3)]
    pub username: String,

    #[field(label = "Email", required, input_type = "email")]
    pub email: String,
}

// Handle form submission
async fn register(
    Prisme(mut form): Prisme<UserForm>,
    mut template: TemplateContext,
) -> Response {
    if form.is_valid().await {
        // Process form
    }
    template.context.insert("form", form);
    template.render("register.html")
}
```

πŸ‘‰ **Read** : [docs/en/05-forms.md](https://github.com/seb-alliot/runique/blob/main/docs/en/05-forms.md) for all field types## 🎨 Templates

**Full Documentation** : [Templates Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/06-templates.md)

Use Tera templates:

```html
<h1>{{ title }}</h1>
{% for item in items %}
  <p>{{ item }}</p>
{% endfor %}
```

πŸ‘‰ **Read** : [docs/en/06-templates.md](https://github.com/seb-alliot/runique/blob/main/docs/en/06-templates.md) for complete syntax

---

## πŸ—„οΈ ORM


**Full Documentation** : [ORM Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/07-orm.md)

Use SeaORM with Django-like pattern:

```rust
impl_objects!(User);

let users = User::objects
    .filter(active.eq(true))
    .all(&db)
    .await?;
```

πŸ‘‰ **Read** : [docs/en/07-orm.md](https://github.com/seb-alliot/runique/blob/main/docs/en/07-orm.md) for advanced queries

---

## πŸ”’ Middleware


**Full Documentation** : [Middleware Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/08-middleware.md)

Integrated security middleware:

- CSRF Protection
- Content-Security-Policy (CSP)
- Allowed Hosts
- Security Headers
- XSS Sanitizer

πŸ‘‰ **Read** : [docs/en/08-middleware.md](https://github.com/seb-alliot/runique/blob/main/docs/en/08-middleware.md) for configuration

---

## πŸ’¬ Flash Messages


**Full Documentation** : [Flash Messages Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/09-flash-messages.md)

Temporary messages for users:

```rust
success!("Operation successful!");
error!("An error occurred");
warning!("Warning!");
```

πŸ‘‰ **Read** : [docs/en/09-flash-messages.md](https://github.com/seb-alliot/runique/blob/main/docs/en/09-flash-messages.md) for details

---

## πŸŽ“ Examples


**Full Documentation** : [Examples Guide](https://github.com/seb-alliot/runique/blob/main/docs/en/10-examples.md)

Complete usage examples:

- Complete blog application
- User authentication
- File upload
- REST API

πŸ‘‰ **Read** : [docs/en/10-examples.md](https://github.com/seb-alliot/runique/blob/main/docs/en/10-examples.md) for complete examples

---

## πŸ§ͺ Tests


```bash
# Unit tests

cargo test --lib

# Integration tests

cargo test --test integration_tests

# All tests

cargo test --all
```

Results: **36/36 tests passing** βœ…

---

## πŸ“– Full Documentation


### English (EN)

- [Installation]https://github.com/seb-alliot/runique/blob/main/docs/en/01-installation.md
- [Architecture]https://github.com/seb-alliot/runique/blob/main/docs/en/02-architecture.md
- [Configuration]https://github.com/seb-alliot/runique/blob/main/docs/en/03-configuration.md
- [Routing]https://github.com/seb-alliot/runique/blob/main/docs/en/04-routing.md
- [Forms]https://github.com/seb-alliot/runique/blob/main/docs/en/05-forms.md
- [Templates]https://github.com/seb-alliot/runique/blob/main/docs/en/06-templates.md
- [ORM]https://github.com/seb-alliot/runique/blob/main/docs/en/07-orm.md
- [Middleware]https://github.com/seb-alliot/runique/blob/main/docs/en/08-middleware.md
- [Flash Messages]https://github.com/seb-alliot/runique/blob/main/docs/en/09-flash-messages.md
- [Examples]https://github.com/seb-alliot/runique/blob/main/docs/en/10-examples.md

### FranΓ§ais (FR)

- [Installation]https://github.com/seb-alliot/runique/blob/main/docs/fr/01-installation.md
- [Architecture]https://github.com/seb-alliot/runique/blob/main/docs/fr/02-architecture.md
- [Configuration]https://github.com/seb-alliot/runique/blob/main/docs/fr/03-configuration.md
- [Routage]https://github.com/seb-alliot/runique/blob/main/docs/fr/04-routing.md
- [Formulaires]https://github.com/seb-alliot/runique/blob/main/docs/fr/05-forms.md
- [Templates]https://github.com/seb-alliot/runique/blob/main/docs/fr/06-templates.md
- [ORM]https://github.com/seb-alliot/runique/blob/main/docs/fr/07-orm.md
- [Middlewares]https://github.com/seb-alliot/runique/blob/main/docs/fr/08-middleware.md
- [Flash Messages]https://github.com/seb-alliot/runique/blob/main/docs/fr/09-flash-messages.md
- [Exemples]https://github.com/seb-alliot/runique/blob/main/docs/fr/10-examples.md

---

## 🎯 Quick Start


1. **Read** [Installation]https://github.com/seb-alliot/runique/blob/main/docs/en/01-installation.md
2. **Understand** [Architecture]https://github.com/seb-alliot/runique/blob/main/docs/en/02-architecture.md
3. **Check** [Examples]https://github.com/seb-alliot/runique/blob/main/docs/en/10-examples.md
4. **Start coding** your application

---

## πŸ“Š Project Status


- βœ… **Compilation** : No errors
- βœ… **Tests** : 36/36 passing (100%)
- βœ… **Documentation** : Complete (EN & FR)
- βœ… **Production** : Ready

See [PROJECT_STATUS.md](PROJECT_STATUS.md) for more details.

---

## πŸ”— Resources


- πŸ“ [Project Structure]INDEX.md
- πŸ“Š [Full Status]PROJECT_STATUS.md
- πŸ§ͺ [Test Reports]TEST_REPORT.md
- πŸ“‹ [Changelog]CHANGELOG.md
- πŸ“– [Documentation Guide]https://github.com/seb-alliot/runique/blob/main/docs/README.md

---

## πŸ“ License


MIT License - see [SECURITY.md](SECURITY.md)

---

## πŸš€ Production Ready


The Runique framework is **stable, tested and documented**, ready for production use.

**Start now** β†’ [Installation](https://github.com/seb-alliot/runique/blob/main/docs/en/01-installation.md)

---

🌍 **Available in**: [English]# | [πŸ‡«πŸ‡· FranΓ§ais]README.fr.md