Sélectionner une page
Formations Langage Rust Formation Rust

Formation Rust

Rust Logo
Prix 2490€ HT / personne
4 jours (28 heures)
Parcours CPF

Paris | Classe Virtuelle

Dernières places Virtuelle uniquement
Labs : Infrastructure DaaS avec Chrome
Cafés et déjeuners offerts en interentreprises
En intra-entreprise pour former votre équipe
Aide au financement 4000€ Bonus Atlas CPF

Présentation

Notre formation Rust vous permettra de découvrir ce nouveau langage de programmation Open Source créé par Mozilla Research, conçu pour aider les développeurs à concevoir des applications ultra-rapides et sécurisées. Il permet d’éviter les erreurs de segmentation et assure la sécurité des threads, le tout avec une syntaxe élégante. Il a de très bonnes performances via sa gestion de la mémoire faite au niveau du compilateur et une compilation native.

Durant ce cours, vous apprendrez toutes les capacités qu’offre Rust telles que le haut niveau d’abstractions, la sécurité garantie de la mémoire, des threads sans problème de concurrence, des templates : trait-based generics, du pattern matching, l’inférence de type, et un binding C efficace, le tout avec runtime minimal !

Sa conception vous permettra de créer des programmes qui ont la performance et le contrôle d’un langage de bas niveau tel que le C, mais avec les abstractions puissantes d’un langage de haut niveau (C#, Java, etc.). Ces propriétés rendent Rust adapté aux programmeurs qui ont de l’expérience dans des langages comme C/C++ ou Python, et qui recherchent une alternative plus sûre afin d’écrire un code qui fonctionne plus efficacement sans sacrifier l’expressivité.

La devise de Rust est :
Performance, Sécurité, Productivité, choisissez-en trois !

À travers cette formation, vous apprendrez à utiliser tous les concepts de Rust à savoir : borrowing, ownership, lifetimes, mutabilité, génériques et bien d’autres choses afin de développer efficacement vos prochains projets !

Comme dans toutes nos formations, celle-ci vous présentera la toute dernière version de Rust Programming Language, Rust 1.83.

 

Objectifs

  • Découvrir, comprendre et utiliser le langage Rust et son écosystème dans vos futurs projets
  • Utiliser la programmation concurrente et la bonne gestion d’erreur avec Rust
  • Interfacer Rust avec un autre langage (Python par exemple)

 

Public visé

  • Développeurs applicatifs ou embarqués

 

Pré-requis

  • Connaissances de base d’un système Unix
  • Connaissance de programmation (C, C#, Java)

 

Pré-requis logiciels

  • Installer Docker et Docker Compose
  • Installation de gnuplot

 

Recommandations de lecture avant et après la formation

  • Un article qui montre étude de cas sur l’écriture d’une application Rust avec seulement qu’une API Minimale
  • Cet article présente le langage de programmation Rust ainsi que les raisons de sa popularité
  • Une vidéo explicative en quelques minutes du langage de programmation Rust crée par Fireship

Programme de la formation Rust

Chaque chapitre contient ses propres exercices et chaque partie sera suivie d’un ou de plusieurs travaux pratiques.

 

Introduction à Rust

  • Présentation du langage Rust
  • Téléchargement et installation de l’environnement Rust
    • rustup
    • cargo
    • rustc
    • crates.io
  • Mon premier programme
  • Trouver la documentation
  • Éditeurs pour Rust

 

LES BASES DE RUST

  • Types basiques
    • Types numériques, entiers et ottants
    • Booléens
    • Caractères
    • Chaînes de caractères
  • Types composés
    • Tableaux
    • Couples
  • Variables et mutabilité
    • Notion de mutabilité
    • Constantes
    • Redénition d’une variable et shadowing
    • Variables statiques
  • Fonctions
    • Syntaxe des fonctions
    • Instructions et expressions
  • Blocs et portée
    • Blocs nécessaires
    • Blocs et durée de vie
    • Bloc d’assignation
  • Structures de contrôle
    • if, else et else if
    • Boucle loop
    • Boucle while
    • Boucle for
  • Espace de noms
    • Notion de crate
    • Imports depuis la std
    • Alias de type
  • Tests unitaires : la commande cargo test

 

Les types de données composites

  • Structures
    • Dénition
    • Assignation
    • Utilisation
    • Structures Tuple
    • Structures unitaires
  • Énumérations
    • Forme commune à d’autres langages
    • Énumération avec données associées
  • Implémentations de trait
    • Traits derivables
    • Implementations manuelles
  • Méthodes
    • Constructeurs
    • Méthodes non-mutables
    • Méthodes mutables

 

Contrôles de flux basés sur la correspondance de motifs

  • if let
    • Test du motif d’une structure
    • Test d’un variant d’une énumération
    • Opérateur OR et motifs multiples
    • Test d’une range
    • Motifs incomplets : introduction à la déstructuration
  • while let
  • match
    • Différence avec le switch case
    • Utilisation de la déstructuration
    • Ajout d’expression booléennes

 

Les types pour la gestion des erreurs

  • Option
    • Prototype de Option
    • Création et utilisation d’une Option
    • Méthodes de la std sur Option
    • Aller plus loin avec les Options
  • Result
    • Prototype de Result
    • Création et utilisation d’un Result
    • La gestion des erreurs

 

Concepts clefs du langage Rust

Ici, il n’est plus question de bases ; ce module servira à approfondir ou à introduire des concepts propres au langage Rust.

  • Expressions
    • Initialisation conditionnelle d’une variable
    • Utilisation du pattern matching et expressions
    • Bloc d’expression
  • Possession
    • Transfert de possession ou copie
    • Reprendre la possession
    • Problème de la modification locale
  • Inférence de type
    • Différents cas d’inférence
    • Conflit de type
    • Limitations de l’inférence de type
  • Références, emprunt et pointeurs
    • Références
    • Références implicites et sucre syntaxique
    • Mutabilité et exclusivité
    • Raw pointers
  • Introduction à la durée de vie
    • Durées de vie implicites
    • Quand il faut être explicite
    • Lifetime static
  • Type slice
    • Dénition
    • Utilisation
    • Itération
    • Méthodes
    • Accès mutables
  • Généricité
    • Librairie standard et génériques
    • Type générique dans une structure ou une énumération
  • Traits
    • Le trait From
    • Implémentation de From pour une énumération
  • Panic, Safe et Unsafe Rust
    • Code unsafe
    • Prototype de panic

 

L’allocation dynamique

  • Box
    • Introduction, pourquoi allouer dynamiquement ?
    • Box et Trait Deref
    • Cas d’utilisation d’une Box
  • Collections – Vector et HashMap
    • Vectors : Tableau alloué dynamiquement
    • Hashmap : Dictionnaire
  • Type String
    • Une chaîne de caractère allouée dynamiquement
    • Création de String
    • Méthodes de String
    • String et type &str
    • À propos de From et de Into
  • Arc, compteurs atomiques de référence
    • Caractéristiques des Arc
    • Proof of concept
  • À propos du trait Clone
    • Dérivation de Clone
    • Dérive récursif
    • Implémentation obligatoire de Clone pour Copy

 

La Programmation Fonctionnelle

Rust combine des aspects de programmation fonctionnelle, tels que les fermetures et l’immutabilité, enrichissant son modèle impératif et concurrent.

  • Opérateur Iry
    • Introduction
    • Syntaxe det eet
  • Closures
    • Différence avec une fonction, la capture de l’environnement
    • Capture par référence
    • Transfert de possession
  • Qu’est-ce que l’approche fonctionnelle
    • Présentation des Iterateurs
    • Principe interne de l’itérateur
    • Exemple d’implémentation d’un Iterateur « custom »
    • Les méthodes sur les Iterateurs
    • Quelques exemples d’utilisation des itérateurs
  • Itérateurs, mutabilité, exclusivité et RefCell
    • Un problème de borrow checker
    • Contournement grace à RefCell

 

La programmation concurrente

Rust excelle en programmation concurrente grâce à son système de propriété et d’emprunt, assurant la sécurité des threads sans verrouillage explicite.

  • Garanties grâce aux traits Send et Sync
  • Partage d’une ressource entre plusieurs threads
    • Utilisation de Arc
    • Mutex, lock et unlock
  • MPSC ou Multiple Producer Single Consumer
    • Qu’est-ce qu’un MPSC
    • Initialisation
    • Création des threads et utilisation

 

Création de trait

  • Définition d’un trait
  • Polymorphisme statique
  • Règle de l’orphelin

 

FFI

  • Appel du Rust depuis C/C++
  • Appel du C/C++ depuis Rust

 

Arborescence de projet et création de crate

  • Utilisation d’une crate
    • Consultation de crates.io
    • Intégration d’une crate au projet
    • La documentation des crates
    • Utilisation des crates dans vos projets Rust
  • Création d’une librairie
    • Création d’un boilerplate par defaut avec cargo
    • Renseignement du fichier cargo.toml
    • Utilisation de la librairie
  • Fichiers, Dossiers et Visibilité
    • Ajout de fichier
    • Sous-dossiers, présentation des deux techniques

 

Module complémentaire (+1 jour) : Approfondissement

 

Les bases de la programmation concurrente

  • Définition : Mandelbrot
  • Parsing pair : command-line arguments
  • Mapping pixels :  complex numbers
  • Tracer : Plotting the set
  • Écriture d’un fichier image
  • Mandelbrot : Concurrent program
  • Exécuter : Mandelbrot plotter
  • Sécurité

 

Unsafe code

  • Unsafe blocks
  • Exemple : ASCII string type
  • Unsafe functions, traits, Raw pointers
  • Exemple: RefWithFlag
  • Nullable pointers
  • Type sizes & alignments
  • Pointer arithmetic
  • Moving into and out of memory
  • Exemple : GapBuffer
  • Interop : Foreign functions, calling function lib C & C++
  • Common data representations
  • Déclaration : foreign functions & variables
  • Raw interface libgit2, Safe interface libgit2

FAQ – QUESTIONS / RÉPONSES

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

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

Qu'est-ce que le CPF ?

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

Pourquoi suivre une formation éligible au CPF ?

Pour profiter des nombreux 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

Que dois-je faire si mon solde CPF n’est pas suffisant ?

Contactez-nous ! Nos conseillers peuvent vous aider à trouver des sources de financement complémentaires en fonction de votre situation, tels que Pôle emploi, votre entreprise, vous-même (via carte bleue), ou encore l’OPCO Atlas.

Comment m'inscrire via moncompteformation ?

Il suffit de cliquer sur le bandeau vert «CPF» à droite de l’écran (ou en haut si vous utilisez un mobile). Vous devrez ensuite sélectionner une date de session depuis le site MonCompteFormation.

Comment augmenter son solde CPF ?

Vous êtes crédités à la fin de chaque année travaillée sur votre compte Moncompteformation. Vous pouvez recevoir jusqu’à 500 euros par an. Le plafond est fixé à 5 000€ sauf pour des cas spécifiques où la limite atteint 8 000€..

Les cas spécifiques où le plafond est fixé à 8 000€ :

  • Salarié non qualifié
  • Travailleur reconnu handicapé
  • Victime d’accident du travail ou de maladie professionnelle ayant entraîné une incapacité permanente d’au moins de 10 %
  • Bénéficiaire d’une pension d’invalidité
  • Bénéficiaire d’une pension militaire
  • Bénéficiaire d’une allocation ou rente d’invalidité des sapeurs-pompiers volontaires
  • Bénéficiaire de la carte mobilité inclusion portant la mention « invalidité »
  • Bénéficiaire de l’allocation aux adultes handicapés (AAH)

Que dois-je faire si mon solde CPF n’est pas suffisant ?

Contactez-nous ! Nos conseillers peuvent vous aider à trouver des sources de financement complémentaires en fonction de votre situation, tels que Pôle emploi, votre entreprise, vous-même (via carte bleue), ou encore l’OPCO Atlas.

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

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

Laurent

Laurent

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

19 décembre 2024

Je recommande la formation

Thibault M.

Afficher tous les témoignages

19 décembre 2024

Je recommande la formation

Thibault M.
19 décembre 2024

Je recommande la formation

Benoit A. de chez Ifm electronic
19 décembre 2024

Les + : Le formateur, sa gentillesse, son humilité et sa bienveillance, le contenu qui couvre assez large.

Les – : Des exercices données le soir pour le lendemain. Difficile à concilier avec la vie de famille… un jour supplémentaire permettrait de faire la totalité des exercices sur le temps de la formation.

Je souhaite suivre : Je n’ai pas regardé le catalogue.

En synthèse : Un grand merci !

TIM L. de chez BULL SAS
31 octobre 2024

Je recommande la formation

Henry V. de chez
31 octobre 2024

Les + : Pédagogie, programme complet

Les – : Rien à signaler

Stanislas W. de chez
31 octobre 2024

Je recommande la formation

Augustin B. de chez
31 octobre 2024

Je recommande la formation

Aymane A. de chez ATOS FRANCE
31 octobre 2024

Les + : L’environnement mis à disposition pour la formation (ie Jupyter) est excellent

Les – : La formation mériterait à être plus longue pour avoir le temps d’aborder plus de sujets.

Alexandre T. de chez MBDA France
19 septembre 2024

Les + : Le formateur a un excellent niveau. Le matériel disponible est riche et me permettra d’avancer et faire de tests tout seul. On a bien survolé tout le contenu à l’exception la partie sur C et C++ ( on l’a remplacé avec WebAssembly dû à l’intérêt des participants).

Les – : La plupart des exercices n’était pas adapté au niveau du contenu enseigné. Par exemple, le formateur venait d’enseigner un sujet avancé (ex. smart pointers) et juste après un exercice compliqué qui combinait beaucoup de concepts par encore mûrs était proposé.

Cela a été pire au dernier jour, quand il a parlé sur WebAssembly. Il a juste défini ce qui était WebAssembly sans expliquer les concepts et on passait directement à des exercices très poussés, où il fallait connaitre plusieurs APIs, des librairies avancées et du JavaScript avancé. Pour moi je n’ai pas réussi à suivre cette partie.

Je souhaite suivre : Une formation dédiée à WebAssembly.

En synthèse : Malgré la difficulté au dernier jours et l’absence d’équilibre entre le contenu et les exercices, la formation en général était adapté à mon niveau (car je connaissais la base de Rust), mais pour un débutant, ce difficile à suivre dû au contenu très dense. J’ai pu augmenter mes connaissances sur le langage.

Je recommande cette formation mais avec quelques adaptations:

1 – Augmenter les heures des cours pour passer plus de temps sur les sujets plus avancés

2 – La formation s’adresse plutôt à quelqu’un qui connaît les bases de Rust ainsi que les concepts avancés d’un autre langage de programmation.

3 – Ce serait intéressant des faire deux formations : Rust et Rust Avancé.

ALEX P. de chez ATOS FRANCE
19 septembre 2024

Les + : Initiation au Rust.

Beaucoup d’exercices qui nous permettent d’appliquer directement les différentes notions apprises.

Support de cours bien faits.

Excellent formateur.

Exemples pertinents

Les – : J’ai répondu pas « Pas du tout » pour la migration C++ à Rust car nous avons demandé dès le premier jour de remplacer cela par un autre module (WASM) qui était très interéssant et ou j’ai appris beaucoup de choses.

Pas vraiment de point faibles à part que le temps n’est pas suffisant pour maitriser toutes les notions existantes.

ANIS HADJ A. de chez ATOS FRANCE
19 septembre 2024

Je recommande la formation

YOUSRA A. de chez ATOS FRANCE
19 septembre 2024

Les + : Qualité pédagogique du formateur

Les – : Difficulté d’apprentissage du langage Rust

Je souhaite suivre : Aucune pour l’instant

En synthèse : RAS

FRANCK P. de chez ATOS FRANCE

Noter la formation

Prix 2490€ HT / personne
4 jours (28 heures)
Parcours CPF

Paris | Classe Virtuelle

Dernières places Virtuelle uniquement
Labs : Infrastructure DaaS avec Chrome
Cafés et déjeuners offerts en interentreprises
En intra-entreprise pour former votre équipe
Aide au financement 4000€ 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