Skip to main content

Web Assembly avec JavaScript et AssemblyScript

Il est possible aujourd'hui de faire du code qui sera compilé en WebAssembly de plusieurs manières.

Les deux manières les plus évidentes sont :

  • Coder dans un langage bas niveau existant (Go, Rust, C++, etc.) pour ensuite générer un binaire (wasm) à l'aide d'outils spécifiques à chaque langage.
  • Utiliser le langage « texte » du WebAssembly (wat) pour le compiler directement en binaire (wasm).

Nous allons aborder une approche intermédiaire, car nous allons utiliser AssemblyScript, un langage basé sur TypeScript conçu pour être compilé en WebAssembly.

image.png

Présentation

L'AssemblyScript est un langage de programmation open source et communautaire qui offre une optimisation pour WebAssembly. Il est de typage fort et présente de nombreuses similitudes avec le TypeScript, ce qui en fait un outil très intuitif sans avoir besoin de maîtriser un nouveau langage de programmation.

image.png

AssemblyScript respecte les spécifications du WebAssembly et se base sur binaryen, un compilateur rapide et performant en WebAssembly codé en C++.

Il ne faut pas oublier que JavaScript demeure indispensable dans un navigateur, car même le WebAssembly a besoin de lui pour interagir.

Compatibilité

L'AssemblyScript est compatible avec la plupart des navigateurs, mais aussi avec Node.js, Wasmtime et Wasmer.

Premier projet