Add convention rule: all generated code and comments must follow standard conventions and be written in English. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Projet Web Rust — Axum + Leptos
Stack technique
- Backend : Axum (serveur HTTP)
- Frontend : Leptos (SSR/WASM)
- Langage : Rust (édition 2021)
- Build : cargo + trunk (pour Leptos)
Niveau développeur
- Débutant en Rust — toujours expliquer les concepts Rust utilisés
- Préférer du code commenté avec les raisons des choix
Conventions
- Utiliser
thiserrorpour la gestion d'erreurs - Utiliser
tracingpour les logs (pasprintln!) - Séparer backend (
src/server/) et frontend (src/client/) - Nommer les composants Leptos en PascalCase
Commandes utiles
- Build backend :
cargo build - Dev frontend :
trunk serve - Tests :
cargo test - Lint :
cargo clippy
Règles importantes
- Ne jamais utiliser
unwrap()en production — toujours?ou.expect("message clair") - Toujours expliquer les lifetimes si elles apparaissent
- Préférer les types idiomatiques Rust (
Option,Result) - Le code généré devra suivre le conventions standard, le code et les commentaires sont rédigés en anglais.
Git & Commits
- Committer chaque changement fonctionnel terminé (ne pas accumuler)
- Format du message :
type(scope): description courte en anglais - Types autorisés :
feat,fix,docs,style,refactor,test,chore - Exemples :
feat(auth): add JWT middlewarefix(api): handle missing user gracefullychore(deps): update axum to 0.8
- Ne jamais committer du code qui ne compile pas (
cargo checkavant) - Une fonctionnalité = une branche = une PR
- Branches :
feature/<nom>,fix/<nom>,chore/<nom>
Architecture
- Deux databases possible, postgresql ou sqlite. Le choix dois se faire par la configuration de l'application.
- Un hote possede un nom, une IP, des ports ouverts
- Les ports peuvent avoir une description pour indiquer quel est le protocole le plus probable d'être utiliser sur ce port (ex: 22 - SSH, 53 - DNS, 80 - HTTP, 443 - HTTPS)
- Un port peut être associé à une application, l'association n'est pas strict car un port peut être utilisé par plusieurs applications.
- Une application possede un nom, un ou plusieurs ports.
- Un réseaux et définit par son CIDR (ex: 192.168.1.0/24)
- L'application peut gérer plusieurs réseaux distinct.
- Chaques hôtes doit appartenir au réseaux dans lequel il est définit.