Files
rust-ipam/CLAUDE.md
mathieu 4c11a8608b docs(claude): enforce English for code and comments
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>
2026-05-15 19:51:41 +02:00

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 thiserror pour la gestion d'erreurs
  • Utiliser tracing pour les logs (pas println!)
  • 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 middleware
    • fix(api): handle missing user gracefully
    • chore(deps): update axum to 0.8
  • Ne jamais committer du code qui ne compile pas (cargo check avant)
  • 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.