Formations Langage Rust Formation Rust Langage Programmation Ultra-Rapide

Formation Rust

Rated 4,4 out of 5
Rust Logo
Prix 2490€ HT / personne
Durée 4 jours (28 heures)
Parcours CPF

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en 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…). 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.77.

 

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.

 

 

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 : cargo tes

 

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
    • Dié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
    • Creation 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 modication locale
  • Inférence de type
    • Diérents cas d’inférence
    • Conits 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éristiaues des Arc
    • Proof of concepot
  • À 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
    • Dié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’iterateur
    • Exemple d’implémentation d’un Iterateur « custom »
    • Les méthodes sur les Iterateurs
    • Quelques exemples d’utilisation des iterateurs
  • 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énition 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
    • Integration 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
  • Ecriture 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

Rated 5,0 out of 5
18 avril 2024

Les + : Formation complète, les concepts traités sont très variés. Le format est également très bien, avec beaucoup d’exemples pratiques.

Les – : Pas suffisamment de temps pour intégrer les concepts. Il faudrait un jour de plus dédié aux tp pour pouvoir mettre en pratique.

Miruna-loana F. de chez Inetum

Afficher tous les témoignages

Rated 5,0 out of 5
18 avril 2024

Les + : Formation complète, les concepts traités sont très variés. Le format est également très bien, avec beaucoup d’exemples pratiques.

Les – : Pas suffisamment de temps pour intégrer les concepts. Il faudrait un jour de plus dédié aux tp pour pouvoir mettre en pratique.

Miruna-loana F. de chez Inetum
Rated 5,0 out of 5
18 avril 2024

Les + : Formateur avec une très bonne connaissance de Rust.

Les – : Une journée supplémentaire serait bénéfique.

Cedric D. de chez
Rated 3,0 out of 5
18 avril 2024

Les + : Bon formateur

Les – : Trop courte, trop de contenu, nous n’avons pas atteint la moitié du programme au bout des quatre jours et pour le prix payé cela n’est pas très professionnel. Soit il faut la simplifier ou soit ajouter des jours.

Philippe F. de chez CODEACTIVE
Rated 5,0 out of 5
18 avril 2024

Je recommande la formation

Alexander S. de chez
Rated 5,0 out of 5
18 avril 2024

Les + : La formation est très complète et bien structurée. Bon équilibre entre cours et TP.

Les – : La formation est un peu trop courte. Les concepts sont trop nombreux pour être acquis/maîtrisés dans un temps aussi rapidement.

Clement D. de chez Inetum
Rated 5,0 out of 5
1 février 2024

Je recommande la formation

Mathieu R. de chez SIERRA WIRELESS
Rated 5,0 out of 5
1 février 2024

Les + : L’ équilibre du discours pour présenter des concepts et API de Rust: le formateur explique bien que pour un code donné il y a un spectre entre du code inadapté jusqu’à un code élégant / s’intégrant aux concepts idiomatiques du langage et de la communauté.

Les – : Avoir une journée de formation en plus aurait permis de couvrir quelques sujets supplémentaires et/ou maintenir la possibilité de discuter plus longuement autour des questions (nombres) des participants (moi y compris !)

En synthèse : Très satisfait du formateur et du contenu de la formation.

Laurent B. de chez SIERRA WIRELESS
Rated 4,0 out of 5
1 février 2024

Les + : La formation mériterait une durée plus longue, car les concepts abordés sont nombreux, et il n’est pas évident d’assimiler aussi vite les concepts.

Éventuellement un peu plus de pratique, pour chacun des premiers modules serait un plus, pour faciliter la suite de la formation.

Les – : N/A

Nicolas G. de chez DIABELOOP
Rated 4,0 out of 5
1 février 2024

Les + : la formation avec son formateur

Stéphane G. de chez Etablissement George Renault
Rated 4,0 out of 5
28 novembre 2023

Les + : Formateur compétent et réactif

Formation complète, qui constitue une introduction solide au langage

Florian T. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Les + : Bon équilibre théorie / pratique

Mathis L. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Les + : formateur compétent et réactif

bonne gestion du timing

tour complet des aspects du langage

Les – : il faudrait donner l’environnement (docker, etc…) à l’avance pour faciliter l’installation des postes de travail

Tim D. de chez ELSYS DESIGN SA

Noter la formation

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

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en 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