Memo Rust Initiation
Bienvenue. Ce dépôt est un cours complet de Rust en français, organisé en 13 chapitres. Chaque chapitre est un dossier avec un README.md qui contient:
- Statut
- en cours
- Contribution
- 12 commits
- Stack
- Rust
- Début
- août 2026
- Dernière activité
- sept. 2026
Bienvenue. Ce dépôt est un cours complet de Rust en français, organisé en 13 chapitres.
Chaque chapitre est un dossier avec un README.md qui contient:
- les notions à comprendre (avec des extraits de syntaxe pour illustrer, jamais la solution);
- les pièges classiques et comment lire les messages du compilateur;
- des exercices variés, avec spécification précise, sorties attendues et critères de réussite;
- à partir du chapitre 3, un jalon qui fait avancer l'application finale.
Règle du jeu: je ne te donne jamais le code que tu dois écrire. Je te donne la doc, les signatures, le comportement attendu et les indices. Le code, c'est toi.
L'application finale: Mémo
À la fin du cours, tu auras écrit Mémo, un logiciel de révision en ligne de commande basé sur la répétition espacée (le principe d'Anki, en beaucoup plus simple).
Ce que Mémo saura faire:
$ memo add --deck rust "Que fait le mot-clé `move`?" "Force la closure à prendre possession..."
Carte #42 ajoutée au paquet « rust ».
$ memo review --deck rust
Paquet « rust » — 7 cartes à réviser aujourd'hui
[1/7] Que fait le mot-clé `move`?
(Entrée pour révéler)
> Force la closure à prendre possession des variables capturées.
Ta réponse: (0) oubliée (1) difficile (2) correcte (3) facile > 2
Prochaine révision dans 6 jours.
...
Session terminée: 7 cartes, 85 % de réussite, 1 min 12 s.
$ memo stats
Paquets: 3 | Cartes: 128 | À réviser demain: 14
rust 62 cartes (maturité 71 %)
anglais 38 cartes (maturité 44 %)
Pourquoi ce projet? Parce qu'il t'oblige à croiser tout ce qui fait Rust:
modélisation avec struct/enum, Option/Result, collections, traits, itérateurs,
gestion d'erreurs propre, lecture/écriture de fichiers, sérialisation JSON, arguments
de ligne de commande, tests, et même un peu de parallélisme. Et à la fin, tu t'en serviras
pour réviser… Rust.
Le parcours
| # | Chapitre | Notions clés | Jalon Mémo |
|---|---|---|---|
| 00 | Mise en route | toolchain, cargo, rustfmt, clippy | — |
| 01 | Les bases du langage | variables, types, fonctions, contrôle de flux | — |
| 02 | Ownership et emprunts | move, &, &mut, slices, String vs &str |
— |
| 03 | Structs, enums, pattern matching | struct, enum, match, impl |
Le type Card |
| 04 | Collections et erreurs | Vec, HashMap, Option, Result, ? |
Le Deck |
| 05 | Modules, tests et crates | mod, visibilité, #[test], dépendances |
Découpage en modules |
| 06 | Traits et génériques | trait, impl Trait, dyn, bornes |
Display, Scheduler |
| 07 | Closures et itérateurs | Fn, map/filter/fold, chaînes lazy |
Filtres et stats |
| 08 | Durées de vie et smart pointers | 'a, Box, Rc, RefCell |
Vues empruntées |
| 09 | Fichiers et sérialisation | std::fs, io, serde, JSON |
Sauvegarde/chargement |
| 10 | CLI et ergonomie | clap, sous-commandes, couleurs, codes de sortie | L'interface complète |
| 11 | Concurrence | threads, Send/Sync, Arc<Mutex>, canaux |
Import parallèle |
| 12 | Projet final: Mémo | assemblage, algorithme SM-2, polish | L'application entière |
Annexes:
Comment travailler
- Lis le chapitre en entier une première fois, sans coder. Tu ne retiendras pas tout, c'est normal.
- Fais les exercices dans l'ordre. Ils sont progressifs: l'exercice 3 suppose l'exercice 1 digéré.
- Compile souvent.
cargo checkaprès chaque bloc de 5 lignes, au début. Le compilateur Rust est un professeur particulier: ses messages sont longs parce qu'ils contiennent la solution. - Ne fuis pas devant une erreur d'emprunt. Lis le message, relis le chapitre 2, essaie. Le moment où tu « comprends » l'ownership est le moment où tu deviens autonome en Rust.
- Écris des tests dès le chapitre 5. Sur ce projet, ils t'éviteront de casser l'algorithme de révision sans t'en apercevoir.
Rythme conseillé: un chapitre par session de 1 h à 2 h. Le chapitre 2 mérite d'y revenir deux fois.
Quand tu es bloqué
Dans l'ordre:
- Relis le message d'erreur en entier (
cargo checkpuis, s'il y a un code typeE0502,rustc --explain E0502). - Cherche la méthode dans la doc locale:
cargo doc --open, ou https://doc.rust-lang.org/std/. - Regarde la section « Indices » de l'exercice — elle te dit quoi chercher, pas comment l'écrire.
- Demande-moi une explication de la notion. (Pas la solution: tu m'en voudras.)
Organisation du dépôt
tuto-rust/
README.md ← tu es ici
Cargo.toml ← workspace: liste tes crates d'exercices
src/main.rs ← bac à sable du chapitre 1
cours/ ← les 13 chapitres + annexes
exercices/ ← un dossier (= une crate) par exercice, créé par toi
ch01-fizzbuzz/
ch01-temperature/
...
projet/memo/ ← l'application finale, construite jalon après jalon
Chaque exercice est une crate indépendante que tu crées toi-même
(cargo new exercices/ch01-fizzbuzz). Le chapitre 0 explique la mécanique.
Bonne route. Commence par le chapitre 0.