Module 1 — Comprendre Rust et son écosystème
- Identifier les principes de Rust : sûreté mémoire, performance, expressivité
- Comparer Rust à C, C++, Go et Java sur les usages typiques
- Installer toolchain (rustup), Cargo et configurer un projet
- Naviguer dans la documentation officielle et les ressources de référence
Module 2 — Syntaxe, types et fonctionnement de base
- Maîtriser variables, mutabilité, types primitifs et constantes
- Utiliser fonctions, contrôle de flux et expressions vs instructions
- Travailler avec structures, enums et pattern matching
- Manipuler tuples, slices, vecteurs et chaînes
- Organiser son code en modules et en crates
Module 3 — Ownership, emprunts et durées de vie
- Comprendre l’ownership : règles fondamentales et déplacement de valeurs
- Maîtriser l’emprunt mutable et immuable
- Travailler avec les références et les annotations de durée de vie
- Identifier les patterns idiomatiques pour passer la donnée
- Distinguer Rc, Arc, RefCell et leur usage
- Diagnostiquer et corriger les erreurs du borrow checker
Module 4 — Traits, génériques et abstractions
- Définir et implémenter ses propres traits
- Construire du code générique et contraint par traits
- Utiliser les traits standards : Display, Debug, Iterator, Clone
- Maîtriser closures, itérateurs et combinaisons fonctionnelles
- Concevoir des abstractions exploitables et lisibles
Module 5 — Gestion des erreurs et tests
- Distinguer panics, Result et Option et leurs cas d’usage
- Construire ses propres types d’erreurs avec thiserror / anyhow
- Écrire des tests unitaires et d’intégration avec Cargo
- Documenter son code avec Rustdoc et les exemples testables
Module 6 — Concurrence et parallélisme
- Lancer des threads et partager de la donnée en sécurité
- Utiliser canaux, mutex et types Send/Sync
- Paralléliser un traitement avec Rayon
- Identifier les pièges courants et les mauvaises pratiques
- Mesurer et optimiser un programme concurrent
- Comparer concurrence synchrone et asynchrone
Module 7 — Perfectionnement : asynchrone, écosystème et applications réelles
- Comprendre async/await, futures et l’exécuteur
- Construire un service réseau avec Tokio ou async-std
- Exploiter les bibliothèques clés : Serde, Reqwest, SQLx, Axum
- Structurer un projet Rust réel : modules, workspaces, CI
- Préparer un binaire pour la mise en production (release, profiling)






