
Formation Rust
Maîtriser le langage Rust, depuis sa syntaxe et son système d'ownership jusqu'à la concurrence sûre et l'écosystème asynchrone, pour produire du code performant, fiable et maintenable.
Format
Intra-entreprise
Durée recommandée
≈ 21 à 35 heures
Démarrage
Sous 15 jours
Sur-mesure
Programme co-construit avec le formateur
Mis à jour le
Pour qui ?
- ›Développeurs souhaitant ajouter Rust à leur boîte à outils
- ›Profils backend, systèmes ou embarqué cherchant un langage performant et sûr
- ›Développeurs C, C++, Go ou Java souhaitant adopter Rust progressivement
- ›Architectes techniques évaluant Rust pour des projets exigeants
Prérequis
- ›Avoir des bases de programmation dans au moins un langage (lecture et écriture de code) et être à l'aise avec un terminal. Une expérience en C, C++, Go ou Java est un plus mais n'est pas indispensable.
Objectifs pédagogiques
- ›Comprendre les principes de Rust et son positionnement parmi les langages système
- ›Maîtriser la syntaxe, les types, les structures et les enums
- ›Comprendre l'ownership, l'emprunt et les durées de vie
- ›Exploiter traits, génériques et abstractions de Rust
- ›Gérer les erreurs et tester son code de manière idiomatique
- ›Mettre en place de la concurrence sûre et exploiter l'asynchrone
- ›Structurer un projet Rust réel avec Cargo et les bibliothèques de l'écosystème
Programme détaillé
8 modules, construits autour de vos cas réels.
Durée recommandée ≈ 21 à 35 heures, modulable selon le rythme du groupe et vos contraintes intra-entreprise.
01Comprendre Rust et installer son environnement
Chapitres- Identifier les principes de Rust : sûreté mémoire sans ramasse-miettes, performance native, expressivité
- Comparer Rust à C, C++, Go et Java sur la gestion mémoire et les usages typiques
- Installer la toolchain avec rustup et basculer entre stable, beta et nightly
- Créer et compiler un premier projet avec Cargo et la commande cargo run
- Naviguer dans la documentation officielle, le Rust Book et crates.io
02Syntaxe, types et structures de données
Chapitres- Maîtriser variables, mutabilité, types primitifs, constantes et shadowing
- Écrire fonctions et contrôle de flux en distinguant expressions et instructions
- Définir structures et enums et exploiter le pattern matching avec match
- Manipuler tuples, slices, vecteurs, HashMap et chaînes String et str
03Ownership, emprunts et durées de vie
Chapitres- Comprendre les règles d'ownership et le déplacement de valeurs (move)
- Distinguer emprunt immuable et emprunt mutable et leurs contraintes
- Annoter les durées de vie sur les références et les signatures de fonctions
- Choisir entre Rc, Arc, RefCell et Cell selon le partage de propriété
- Diagnostiquer et corriger les erreurs renvoyées par le borrow checker
- Appliquer les patterns idiomatiques pour passer et retourner la donnée
04Traits, génériques et abstractions
Chapitres- Définir et implémenter ses propres traits avec méthodes par défaut
- Écrire du code générique contraint par des bornes de traits (trait bounds)
- Utiliser les traits standards Display, Debug, Iterator, Clone et From
- Manipuler closures, itérateurs et combinateurs map, filter, collect
- Distinguer dispatch statique et dynamique avec dyn et les trait objects
05Gestion des erreurs et tests
Chapitres- Distinguer panic, Result et Option et identifier leurs cas d'usage
- Propager les erreurs avec l'opérateur ? et construire ses types d'erreur via thiserror et anyhow
- Écrire des tests unitaires et d'intégration et lancer cargo test
- Documenter le code avec Rustdoc et valider les exemples testables
06Organisation du code et écosystème Cargo
Chapitres- Structurer un projet en modules, crates et workspaces multi-paquets
- Gérer les dépendances, les features et les profils dans Cargo.toml
- Intégrer des crates courantes : Serde pour la sérialisation, Clap pour la ligne de commande
- Configurer le formatage avec rustfmt et l'analyse statique avec Clippy
- Publier et versionner une bibliothèque selon le semver
07Concurrence et parallélisme
Chapitres- Lancer des threads et partager la donnée en respectant Send et Sync
- Synchroniser avec Mutex, RwLock, Arc et les canaux mpsc
- Paralléliser un traitement de données avec les itérateurs Rayon
- Identifier les pièges classiques : interblocage, contention, data race
- Mesurer et profiler un programme concurrent pour repérer les goulots
08Asynchrone et applications réseau
Chapitres- Comprendre async, await, les futures et le rôle de l'exécuteur
- Construire un service réseau asynchrone avec le runtime Tokio
- Exploiter les bibliothèques Reqwest pour le client HTTP, SQLx pour la base de données, Axum pour le serveur web
- Gérer les erreurs et l'annulation des tâches asynchrones
- Préparer un binaire de production : compilation release, optimisation et profiling
- Mettre en place une intégration continue qui compile, teste et vérifie le formatage
Moyens & supports pédagogiques
- Accueil des stagiaires
- Supports de formation projets
- Apports théoriques et pratiques
- Études de cas concrets
- Auto-positionnement
- Accès en ligne aux ressources
Évaluation & suivi des acquis
Feuille de présence
Émargement des stagiaires en présentiel ou à distance, via support papier ou signature électronique.
Émargement sécurisé
Signatures électroniques collectées en ligne et conservées dans un coffre-fort numérique sécurisé par Dendreo.
Auto-positionnement
Évaluation du niveau des stagiaires en début et en fin de formation pour mesurer la progression.
Évaluations pédagogiques
Validation des acquis par des questions orales ou écrites tout au long de la formation.
Mises en situation
Exercices pratiques et cas concrets pour ancrer les compétences dans la réalité métier.
Attestation de fin de formation
Remise d'une attestation officielle à l'issue de la formation.
Délai d’accès
Sous 15 jours après validation du devis
Accessibilité PSH
Adaptations possibles en situation de handicap. En savoir plus
Prochaine étape
Construire votre formation Rust
Un échange de 20 minutes suffit pour cadrer vos enjeux et la session. Devis personnalisé sous 48h, démarrage sous 15 jours.
- Réponse sous 24h ouvrées
- 01 85 71 00 29

Pour aller plus loin





