L’environnement
Rust est un langage multi-paradigme : orienté objet, générique, fonctionnel. Rust permet de bâtir des applications performantes et plus sécurisées qu’avec d’autres langages. Il est supporté et adopté par les plus grands éditeurs, y compris pour fonctionner dans les noyaux des systèmes d’exploitation.
Objectifs pédagogiques
À l’issue de la formation, le·la stagiaire sera capable de :
- Créer un projet Rust
- Programmer avec Rust : utilisation du pattern matching, des closures…
- Maîtriser les différentes références et la possession
- Modulariser une application en crates et modules
Public concerné
Technicien·ne·s, ingénieur·e·s, développeur·se·s, scientifiques, enseignant·e·s ou tout public souhaitant découvrir le langage Rust.
Prérequis
Connaître un langage de programmation.
Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.
Programme de la formation
Introduction
- Rust : historique et caractéristiques
- Environnement de développement Rust
La programmation de base en Rust
- Les types de Rust : types de base, String, « str slice »
- Main et fonctions de Rust
- Contrôle de flux avec Rust
- Enum et pattern matching avec Rust
- Tableaux et « tranches de tableaux » pour éviter la copie
Références : possession et prêt
- Possession exclusive des objets
- Références en lecture partagée et référence exclusive pour l’écriture
- Allocation de mémoire avec Box<T>
- Allocation et partage avec Rc<T>
- Design pattern de mutabilité intérieure avec RefCell<T>
La programmation orientée objet en Rust
- Tuples et structures
- Implémentation pour les structs, enums…
- Fonctions associées au type
- Les Traits pour mettre du comportement en commun
- Traits standards de Rust
- Généricité : quand le type diffère mais que l’on veut partager du code
Les fermetures pour la programmation fonctionnelle
- Les fermetures : capacité à écrire des fonctions courtes
- Capacité de capture des fermetures
- Différentes sortes de fermetures
Collections et itérateurs de Rust
- Les collections pour des algorithmes qui gèrent la croissance
- Les collections pour les recherches rapides
- Itérateurs pour parcourir les collections
- Adapteurs d’itérateurs : la boîte à outil des traitements ensemblistes
Flux de Rust
- Les flux en lecture : fichiers, sockets, données en mémoire, console
- Design pattern Resource Acquisition is Initialization pour fermer les fichiers
Multithreading avec Rust
- Démarrer un thread
- Sécurité intrinsèque des threads de Rust avec le déplacement
- Poser un verrou et sécurité des mutex propriétaires des ressources

NUMGRADE s'engage à accueillir les personnes en situation de handicap.
N'hésitez pas à nous contacter pour que le suivi de la formation se déroule
dans les meilleures conditions possibles.
