Format Atlas

Web

Qu’est-ce qu’un module WebAssembly ?

`.wasm` est une extension courante des modules binaires définis par WebAssembly Core. WebAssembly est un format portable de code bas niveau, également utilisé hors du Web, mais le fichier ne s’exécute pas partout seul. Un runtime compatible est nécessaire ; fonctions et API hôtes dépendent de l’environnement d’intégration.

.wasmModule binaire portable de bas niveau

Quand choisir ce format

  • S’exécuter avec les fonctions Wasm et API hôtes requises
  • Distribuer un module binaire pour un runtime compatible

Quand éviter ce format

  • Lire ou modifier le binaire comme du texte
  • Déployer sans vérifier imports, runtime et compatibilité WASI

Usages courants

  • Distribuer des modules compilés pour WebAssembly
  • Compiler pour des navigateurs ou serveurs

Caractéristiques

  • Encode le module en sections binaires structurées
  • Peut définir fonctions, mémoire, tables, variables globales, imports et exports
  • Validation et exécution selon les fonctions prises en charge

Avantages et inconvénients

Avantages

  • Format portable entre runtimes compatibles
  • Représentation binaire compacte
  • L’environnement peut limiter l’accès aux fonctions hôtes exposées

Inconvénients

  • Difficile à inspecter dans un éditeur de texte courant
  • Compatibilité du runtime et des API importées à vérifier
  • Le format seul ne garantit pas la sûreté du module

Ouvrir et convertir

Comment ouvrir

Chargez-le dans un navigateur ou runtime serveur compatible, ou utilisez un validateur. Vérifiez les fonctions et imports requis. Avant l’exécution, contrôlez sa provenance et les capacités hôtes exposées.

Comment convertir

Générez `.wasm` avec une chaîne d’outils compatible. La conversion vers ou depuis le format texte lisible WAT nécessite des outils adaptés ; changer l’extension ne convertit pas le fichier. Vérifiez ensuite les imports/exports et la compatibilité avec le runtime ou WASI.

Précautions

  • `.wasm` est un module interprété par un runtime, pas un exécutable universel.
  • L’isolation dépend des imports et API hôtes exposés ; elle ne garantit pas la sécurité. N’exécutez pas de modules non fiables.
  • Navigateurs, runtimes serveur et WASI peuvent prendre en charge des fonctions différentes.

Questions fréquentes

`.wasm` fonctionne-t-il uniquement dans un navigateur ?

Non. Des runtimes existent hors navigateur, mais leurs fonctions et interfaces varient.

Un fichier `.wasm` s’exécute-t-il seul ?

En général, non : il faut un runtime compatible et les imports attendus.

WebAssembly est-il sûr par défaut ?

Non. Vérifiez la provenance, les imports et API accessibles ainsi que la configuration du runtime.

Formats associés

Références et spécifications