Sélectionner une page
Formations › Langage › Rust › Formation Rust

Formation Rust

Niveau confirmé
Catégorie Essential
Rust Logo
Prix 2 490€ HT / personne
4 jours (28 heures)
Labs : Infrastructure DaaS avec Chrome
Cafés et encas offerts en interentreprises
En intra-entreprise pour former votre équipe
Aide au financement 2500€ Bonus Atlas CPF

Présentation

Notre formation Rust de 4 jours vous permet d’apprendre à développer des applications performantes, fiables et sécurisées avec un langage particulièrement adapté à la programmation système.

Vous découvrirez les fondamentaux de Rust et ses principaux mécanismes : propriété et emprunts (ownership et borrowing), gestion des durées de vie, correspondance de motifs (pattern matching), généricité et traits.

Vous apprendrez à utiliser son système de types et ses règles de gestion de la mémoire pour prévenir de nombreuses erreurs dès la compilation. Vous mettrez également en pratique la gestion des erreurs, la manipulation des collections et les bases de la programmation concurrente et asynchrone.

La formation vous familiarisera avec les outils de l’écosystème Rust pour créer, organiser, tester et documenter vos projets. Une introduction à l’interopérabilité avec C et C++ complétera ces apprentissages.

Comme toutes nos formations, celle-ci vous présentera la dernière version stable de la technologie Rust (1.93.1) et ses nouveautés.

 

Objectifs

  • Comprendre les fondamentaux de Rust et développer des applications avec ses outils
  • Appliquer les principes de propriété, d’emprunt et de gestion de la mémoire
  • Utiliser le pattern matching et les mécanismes de gestion des erreurs
  • Comprendre les bases de la programmation concurrente et asynchrone avec Rust
  • Comprendre les principes de l’interopérabilité avec C et C++

 

Public visé

  • Développeurs souhaitant apprendre Rust
  • Architectes logiciels souhaitant comprendre les possibilités et les contraintes du langage

 

Prérequis

  • Pratique d’un langage de programmation tel que C, C++, C# ou Java
  • Connaissances de base d’un environnement Unix et de l’utilisation d’un terminal

 

Prérequis techniques

  • Installer Docker et Docker Compose, puis vérifier leur fonctionnement
  • Sous Windows, installer une distribution Debian ou Ubuntu avec WSL
  • Disposer de Git pour récupérer le dépôt de formation
  • Disposer d’un navigateur web pour accéder aux notebooks Jupyter
  • Prévoir une connexion Internet pour télécharger les supports et l’image Docker

 

Ressources pour préparer et prolonger la formation

Programme de notre formation Rust

 

Découvrir Rust et son environnement de développement

  • Présentation du langage, de ses caractéristiques et de ses cas d’utilisation
  • Installation et configuration de l’environnement
    • rustup : installation et gestion des chaînes d’outils
    • rustc : compilation des programmes Rust
    • Cargo : création des projets et gestion des dépendances
    • crates.io : recherche de bibliothèques
  • Création, compilation et exécution d’un premier programme
  • Structure d’un projet et rôle des fichiers Cargo.toml et Cargo.lock
  • Utilisation des notebooks Jupyter et du noyau Rust EvCxR
  • Documentation officielle, éditeurs et rust-analyzer
  • Découverte des outils de formatage et d’analyse du code

 

Acquérir les fondamentaux du langage

  • Types de données
    • Entiers et nombres à virgule flottante
    • Booléens et caractères
    • Introduction aux chaînes de caractères
    • Tableaux, tuples et alias de types
  • Variables et mutabilité
    • Déclaration avec let et mut
    • Constantes et variables statiques
    • Redéfinition d’une variable avec le shadowing
  • Fonctions et expressions
    • Déclaration, paramètres et valeurs de retour
    • Différences entre instructions et expressions
    • Blocs et portée des variables
  • Structures de contrôle
    • Conditions if, else et else if
    • Boucles loop, while et for
    • Utilisation de break et continue
  • Premiers repères sur les crates, les modules et les imports avec use
  • Exercices d’application sur les types, les fonctions et les boucles

 

Modéliser les données avec les structures et les énumérations

  • Structures avec struct
    • Définition, initialisation et accès aux champs
    • Structures de type tuple et structures unitaires
  • Énumérations avec enum
    • Définition et utilisation des variantes
    • Variantes avec données associées
  • Méthodes et implémentations
    • Organisation du code avec les blocs impl
    • Fonctions associées et constructeurs
    • Méthodes avec &self et &mut self
  • Introduction aux traits et aux implémentations dérivées
  • Travaux pratiques : premières étapes du projet Farador avec des structures, des énumérations et des méthodes

 

Contrôler les flux avec la correspondance de motifs

  • Expression match et exhaustivité des cas
  • Déstructuration des structures, des énumérations et des tuples
  • Conditions de garde dans les expressions match
  • Expressions if let et while let
  • Chaînage des conditions avec let
  • Motifs multiples avec | et correspondance avec les plages de valeurs
  • Exercices de sélection et d’extraction de données par motifs

 

Gérer les valeurs optionnelles et les erreurs

  • Représenter l’absence d’une valeur avec Option
    • Variantes Some et None
    • Extraction et transformation des valeurs
    • Méthodes map, and_then et unwrap_or
  • Représenter un résultat ou une erreur avec Result
    • Variantes Ok et Err
    • Traitement explicite des erreurs
    • Propagation avec l’opérateur ?
  • Distinguer les erreurs récupérables des situations de panique
  • Utilisation de panic! et limites de unwrap
  • Introduction aux erreurs personnalisées
  • Travaux pratiques : faire évoluer Farador pour représenter des valeurs optionnelles et des opérations susceptibles d’échouer

 

Comprendre la propriété, les emprunts et les durées de vie

Ce chapitre explique comment Rust contrôle l’utilisation des valeurs et des références pour prévenir les accès mémoire invalides.

  • Système de propriété : ownership
    • Principes et règles de propriété
    • Transfert de propriété avec move
    • Différences entre copie et clonage
    • Libération automatique des ressources et trait Drop
  • Références et emprunts : borrowing
    • Références partagées et références mutables
    • Mutabilité et exclusivité des emprunts
    • Lecture des messages du borrow checker
  • Durées de vie : lifetimes
    • Durées de vie implicites et annotations explicites
    • Références dans les structures
    • Durée de vie ‘static
  • Slices et emprunts sur les collections
  • Inférence de types, ambiguïtés et annotations nécessaires
  • Travaux pratiques : modéliser des livres et leurs auteurs pour comprendre les contraintes des références et des durées de vie

 

Utiliser la généricité, les traits et le polymorphisme

  • Fonctions, structures et énumérations génériques
  • Contraintes de traits : trait bounds
  • Définition et implémentation d’un trait
    • Méthodes requises et méthodes par défaut
    • Implémentations manuelles et dérivées
    • Conversions avec From et Into
  • Introduction au polymorphisme statique et au dispatch dynamique
  • Utilisation de impl Trait et dyn Trait
  • Règle de l’orphelin et utilisation du pattern newtype
  • Travaux pratiques : définir une structure générique et comparer ses valeurs à l’aide de contraintes de traits

 

Manipuler les allocations dynamiques et les collections

  • Allocation sur le tas avec Box
    • Principes et cas d’utilisation
    • Trait Deref et accès aux données
    • Libération des ressources
  • Collections
    • Vec : tableaux dynamiques
    • HashMap : associations clé-valeur
    • Accès, modification et parcours des éléments
  • Chaînes de caractères
    • Différences entre String et &str
    • Création, conversion et manipulation
    • Encodage UTF-8
  • Partage de propriété avec Rc et Arc
  • Introduction à la mutabilité intérieure avec RefCell
  • Relations et différences entre Clone et Copy

 

Écrire des traitements avec les closures et les itérateurs

  • Fermetures : closures
    • Syntaxe et différences avec les fonctions
    • Capture de l’environnement par référence
    • Transfert de propriété avec move
    • Introduction aux traits Fn, FnMut et FnOnce
  • Itérateurs
    • Fonctionnement et évaluation paresseuse
    • Transformation et filtrage avec map et filter
    • Agrégation avec fold et création de collections avec collect
    • Chaînage, consommation et itération mutable
    • Introduction à la création d’un itérateur personnalisé
  • Gestion des emprunts dans les traitements par itérateurs
  • Travaux pratiques : filtrer et transformer une collection, puis comparer les approches par boucles et par itérateurs

 

Mettre en pratique les arguments et la lecture de fichiers

  • Récupération des arguments de la ligne de commande avec std::env::args
  • Ouverture et lecture de fichiers avec la bibliothèque standard
  • Propagation des erreurs d’entrée-sortie avec Result et l’opérateur ?
  • Conversion des données lues et traitement des erreurs d’encodage UTF-8
  • Travaux pratiques : développer un utilitaire affichant le contenu de plusieurs fichiers et gérant les erreurs sans déclencher de panique

 

Découvrir la programmation concurrente et asynchrone

  • Programmation multithread
    • Création de threads avec std::thread
    • Transfert de propriété vers les threads
    • Rôle des traits Send et Sync
    • Partage de ressources avec Arc et Mutex
  • Communication entre threads
    • Principe des canaux MPSC : Multiple Producer, Single Consumer
    • Création des canaux et échange de messages
  • Introduction à la programmation asynchrone
    • Différences entre multithreading et asynchronisme
    • Principes des futures et syntaxe async/await
    • Introduction aux fermetures asynchrones
    • Rôle d’un runtime comme Tokio
    • Lancement de tâches et attente de leurs résultats
  • Travaux pratiques : partager une ressource entre deux threads sans variables globales ni code unsafe
  • Démonstration comparative de l’exécution de tâches avec Tokio et avec des threads

 

Comprendre les bases de l’interopérabilité avec C et C++

  • Principes de la Foreign Function Interface : FFI
  • Introduction aux pointeurs bruts et aux responsabilités du code unsafe
  • Déclaration des fonctions externes et des blocs extern
  • Appel de fonctions C depuis Rust
  • Exposition de fonctions Rust pour une utilisation depuis C ou C++
  • Représentation des données avec #[repr(C)]
  • Précautions concernant la validité des pointeurs, les durées de vie et la libération de la mémoire

 

Organiser, tester et maintenir un projet Rust

  • Gestion des dépendances
    • Recherche de bibliothèques sur crates.io
    • Ajout et mise à jour des dépendances avec Cargo
    • Consultation de la documentation des crates
  • Création d’une bibliothèque Rust
    • Génération d’un projet et configuration de Cargo.toml
    • Organisation des fichiers et des modules
    • Gestion de la visibilité avec pub et des réexportations avec pub use
  • Qualité du code
    • Formatage avec cargo fmt
    • Analyse statique avec cargo clippy
    • Écriture et exécution de tests avec cargo test
    • Génération de documentation avec cargo doc
  • Repères pour la maintenance
    • Audit des dépendances avec cargo audit
    • Choix de l’édition du langage dans Cargo.toml
    • Mise à jour du compilateur et des dépendances
    • Découverte de cargo fix –edition pour accompagner une migration
    • Vérification de la compatibilité et traitement des avertissements

FAQ – QUESTIONS / RÉPONSES

Pourquoi choisir Rust ?

Si vous souhaitez en savoir davantage sur cette technologie, vous pouvez consulter nos articles sur Rust.

La formation est-elle dispensée en présentiel ou à distance ?

Cette formation se déroule en présentiel ou en distanciel.

Comment puis-je financer cette formation ?

Contactez-nous pour trouver une solution de financement sur mesure ! Nous vous aiderons à choisir parmi les options suivantes :

  • OPCO (opérateurs de compétences) de votre entreprise
    • Le plan de développement des compétences
    • Les actions collectives pour les formations Big Data
    • Le dispositif FNE-Formation
    • Dispositif TPE / PME
  • Pôle Emploi
    • L’AIF (Aide Individuelle à la Formation pour les demandeurs d’emploi)
    • L’ARE (Allocation chômage d’aide au retour à l’emploi)
  • Le dispositif CPF (MonCompteformation)
  • Contrat cadre

Qu'est-ce que le CPF ?

Le Compte Personnel de Formation est un dispositif régi par l’état français pour permettre aux salariés de disposer d’un financement mobilisable uniquement pour la formation.

Sur votre compte « Moncompteformation », vous pouvez recevoir jusqu’à 500 euros par an cumulable. Les avantages qu’offre le CPF :

  • Une formation finançable jusqu’à 100%
  • Une formation de qualité approuvée par l’instance gouvernementale France Compétences
  • L’obtention d’une certification délivrée par France Compétences

Pour aller plus loin

Formation Rust Avancé

Formation WebAssembly

Formation WebAssembly avec Rust

Langues et Lieux disponibles

Langues

  • Français
  • Anglais / English

Lieux

  • France entière
    • Paris
    • Lille
    • Reims
    • Lyon
    • Toulouse
    • Bordeaux
    • Montpellier
    • Nice
    • Sophia Antipolis
    • Marseille
    • Aix-en-Provence
    • Nantes
    • Rennes
    • Strasbourg
    • Grenoble
    • Dijon
    • Tours
    • Saint-Étienne
    • Toulon
    • Angers
  • Belgique
    • Bruxelles
    • Liège
  • Suisse
    • Genève
    • Zurich
    • Lausanne
  • Luxembourg

Nos Formateurs Référents

Mickael

Mickael

Je pratique Rust depuis quelques années dans un contexte industriel comme langage de programmation pour le backend d’applications web. Je contribue également à la communauté Rust par la publication de paquets open source. Pour moi, Rust fournit une expérience de développement système performante, moderne et surtout sûre.

Bastien

Bastien

Utilisateur depuis la bêta en 2015, depuis j’ai créé des projets personnels (sur GitHub) et après cela, j’ai fait un serveur web en Rust dans une start-up (backend avec gestion des templates). J’ai écrit un filesystem en Rust pour la plateforme Android pour la startup Moore.

Témoignages

15 octobre 2026

Les + : L’interactivité lors de la formation

Les – : J’aurai aimé faire un petit peu plus de TP

Jules B. de chez BULL SAS

Afficher tous les témoignages

15 octobre 2026

Les + : L’interactivité lors de la formation

Les – : J’aurai aimé faire un petit peu plus de TP

Jules B. de chez BULL SAS
15 octobre 2026

Je recommande la formation

Marie B. de chez BULL SAS
15 octobre 2026

Je recommande la formation

Anton D. de chez BULL SAS
15 octobre 2026

Les + : Compétences formateur

Equilibre theorie / pratique

Les – : Salle fournie par Bull trop petite et mal aérée. Sièges Bull inconfortables. (responsabilité Bull et pas ambient IT)

Déroulement parfois un peu déstructuré (exercices parfois abordés avant la théorie, même si c’est en partie volontaire)

Concepts rust amenés dans un ordre cohérent mais parfois arbitraire

En synthèse : RAS

Sylvain G. de chez BULL SAS
15 octobre 2026

Je recommande la formation

VOLKER-FELVIC-KATCHE T. de chez BULL SAS
15 octobre 2026

Les + : Le formateur et son support sous forme de container docker exécutant un notebook jupyter

Les – : J’aurais aimé un jour supplémentaire pour faire plus de mise en pratique.

Yann D. de chez BULL SAS
15 octobre 2026

Les + : La formation était claire, précise et le formateur passait du temps avec chaque personne pour s’assurer que tout le monde avait bien compris. Les TP permettaient de rapidement mettre en pratique ce qui avait été vu, ils étaient pour moi la meilleure partie de la formation.

Les – : Un peu plus de pratique (surtout à la fin) aurait été apprécié.

Titouan J. de chez BULL SAS
15 octobre 2026

Les + : Fluidité des explications et la pertinence au réponse aux questions posés

Les – : Un peut dense

Jean-Yvon T. de chez BULL SAS
15 octobre 2026

Les – : Peut-être un manque de pratique, ou du moins de façon plus récurrente pour éviter les tunnels de théorie.

Van-Man N. de chez BULL SAS
15 octobre 2026

Je recommande la formation

Jonathan E. de chez BULL SAS
8 octobre 2026

Les + : L’équilibre en théorie et pratique est vraiment bien trouvé. Et le formateur était très didactique et a bien réussi a prendre en compte le niveau des participants.

Les – : peut être sa densité sur 4 j c’est un peu court.

Jerome F.
8 octobre 2026

Les + : Le formateur (expert Rust sympathique et dynamique), le format de la formation interactive avec les notebooks Jupyter et les TPs

Les – : La formation est très dense, cela mériterait peut-être de l’étendre sur un 5ième jour.

Je souhaite suivre : RAS

Davy M.

Noter la formation

Prix 2 490€ HT / personne
4 jours (28 heures)
Labs : Infrastructure DaaS avec Chrome
Cafés et encas offerts en interentreprises
En intra-entreprise pour former votre équipe
Aide au financement 2500€ Bonus Atlas CPF

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp