> Formations > Technologies numériques > Technologies Web > Développement Front-End > Formation WebAssembly, booster les performances de ses applications web > Formations > Technologies numériques > Formation WebAssembly, booster les performances de ses applications web

Formation : WebAssembly, booster les performances de ses applications web

Mettre du binaire dans le moteur de ses navigateurs web

WebAssembly, booster les performances de ses applications web

Mettre du binaire dans le moteur de ses navigateurs web


New

WebAssembly (WASM), standard W3C officiel depuis 2019, permet l’écriture d'applications ultra-rapides et ultra-légères sur le web. Ces applications peuvent être déjà écrites en toutes sortes de langages sources existants : C/C++, Rust, Go, Java, etc. Elles n’ont plus qu’à être portées pour être accessibles dans un navigateur ou un container sécurisé. Cette formation pratique donne les clés pour développer du code WASM et compiler des programmes existants en WebAssembly.


INTER
INTRA
SUR MESURE

Cours pratique en présentiel ou à distance
Disponible en anglais, à la demande

Réf. WAY
  3j - 21h00
Prix : 2120 € H.T.
Pauses-café et
déjeuners offerts




WebAssembly (WASM), standard W3C officiel depuis 2019, permet l’écriture d'applications ultra-rapides et ultra-légères sur le web. Ces applications peuvent être déjà écrites en toutes sortes de langages sources existants : C/C++, Rust, Go, Java, etc. Elles n’ont plus qu’à être portées pour être accessibles dans un navigateur ou un container sécurisé. Cette formation pratique donne les clés pour développer du code WASM et compiler des programmes existants en WebAssembly.


Objectifs pédagogiques
À l’issue de la formation, le participant sera en mesure de :
Comprendre l'architecture et l'environnement du standard W3C WebAssembly
Maîtriser le jeu d'instructions binaires du langage WASM et sa représentation textuelle, le format WAT
Utiliser l'API JavaScript pour interagir avec des modules WASM
Savoir mettre en œuvre une compilation C/C++ avec la suite Emscripten
Développer avec le langage AssemblyScript
Porter un programme ou une librairie C/C++ en WASM

Public concerné
Développeurs, développeurs web, intégrateurs, architectes techniques, responsables de solutions techniques.

Prérequis
Connaître les bases de HTML, de langages tels que JavaScript, C, et de langages de commandes tels que shell, Bash ou CMD (DOS).
Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Modalités d'évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…
Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.

Programme de la formation

Introduction à WASM

  • À quelles problématiques répond WebAssembly ?
  • Historique de WASM.
  • Architecture.
  • Portabilité, sécurité, performance.
  • Organisation de la spécification.
  • Documentation.
  • WASI, Bytecode Alliance.
  • Structure d'un module.
Travaux pratiques
Écriture de modules simples en WASM à l'aide de WAT. Compilation et exécution avec wat2wasm et node.

Le langage textuel WAT

  • Description d'un environnement de développement en WAT.
  • Extensions Visual Studio Code.
  • Les différentes déclarations d'un module.
  • Les commentaires, les S-expressions.
  • Les fonctions et la pile d'instruction.
  • Importer/exporter une fonction ou autre artefact.
  • Les objets globaux.
  • La mémoire linéaire.
  • Les tables de pointeurs.
  • Les différentes instructions : boucle, conditions, opérations, trap.
  • Fonction de démarrage "start".
  • L'interface JavaScript pour utiliser un module WASM.
Travaux pratiques
Écriture et compilation d'un module en WAT offrant quelques fonctions mathématiques de base (factorielle, Fibonacci, etc.). Exécution du fichier dans Node et dans un navigateur.

Runtimes WASM

  • Prérequis d'un runtime.
  • Liste des runtimes.
  • Description de WASI.
  • Installation de runtime.
  • Exécution de programmes WASM avec des runtimes.
Travaux pratiques
Compilation en WASM d'un programme simple écrit en Rust et exécution sur plusieurs runtimes (wasm3, wasmtime, etc.)

AssemblyScript

  • Installation du module Node AssemblyScript.
  • Initialisation d'un projet avec asinit.
  • Garbage collector et mémoire.
  • Programmation avec des objets.
  • Intégration d'une librairie WASM fabriquée en AssemblyScript.
Travaux pratiques
Écriture d'un module WASM en AssemblyScript calculant les couleurs des points d'une fractale de Mandelbrot et intégration de cette librairie dans un front end visualisant la fractale.

L'outil Emscripten

  • Les langages pouvant être portés en WASM.
  • Présentation générale de Emscripten.
  • Historique.
  • Installation officielle.
  • Installation sous Debian/Ubuntu avec apt.
  • Le compilateur emcc.
  • Le fichier JavaScript d'enveloppe.
  • Les options de compilation.
  • Les stratégies d'appels depuis JavaScript (ccall, cwrap, etc.).
Travaux pratiques
Écrire un programme simple en C, le compiler en WASM et l'utiliser avec Node et dans un navigateur.

Portage de librairie

  • Compiler et configurer avec Emscripten et Autoconf.
  • Compiler et configurer avec Emmake et Emconfigure.
  • Interaction avec les makefiles.
  • Option de compilations MODULARIZE, EXPORTED_FUNCTIONS, EXPORTED_RUNTIME_METHODS.
  • Le système de fichier virtuel.
  • Les variables d'environnement.
Solutions de financement
Plusieurs solutions existent pour financer votre formation et dépendent de votre situation professionnelle.
Découvrez-les sur notre page Comment financer sa formation ou contactez votre conseiller formation.

Horaires
les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45. Les pauses et déjeuners sont offerts.
Pour les stages pratiques de 4 ou 5 jours, quelle que soit la modalité, les sessions se terminent à 16h le dernier jour.

Dates et lieux
Sélectionnez votre lieu ou optez pour la classe à distance puis choisissez votre date.
Classe à distance

Dernières places
Date garantie en présentiel ou à distance
Session garantie