---
title: WebAssembly (WASM)
created: 2026-06-06
updated: 2026-06-06
type: concept
tags: [tech, web, architecture]
confidence: high
contested: false
sources: [synthesized]
---
# 🕸️ WebAssembly (WASM)

## Définition Courte
Format binaire d'instructions pour une **machine virtuelle basée sur une pile**, conçu comme cible de compilation portable pour des langages haut niveau (C++, Rust, Go, etc.).

## Explication Détaillée
WASM permet d'exécuter du code quasi-natif (proche du C++ en performance) dans :
- **Navigateurs** : à côté de JavaScript.
- **Edge** : Cloudflare Workers, Fastly.
- **Plugins** : extensions sécurisées (Envoy WASM filters).
- **Server-side** : Wasmtime, Wasmer.

**Avantages** : performance, sécurité (sandbox strict par défaut), polyglotte, portable.
**Inconvénients** : écosystème immature hors navigateur, debugging limité.

## Cas d'Usage
- Calcul intensif côté navigateur (Figma, Photoshop Web).
- Remplacement de Docker dans certains cas (WASM containers, ex: Spin de Fermyon).
- Plugins sandboxés (Istio/Envoy).
- Edge functions ultra-rapides.

## Outils Liés
- **Wasmtime**, **Wasmer** (runtimes).
- **Spin** (Fermyon, serverless WASM).
- **Emscripten** (compile C/C++ vers WASM).
- **AssemblyScript** (TS-like pour WASM).

## Pages Liées
- [[edge-computing]]
- [[serverless]]
- [[concepts-web]]

## Questions Ouvertes
- WASM va-t-il remplacer les conteneurs Linux ?
- Quel est l'avenir de WASI (WebAssembly System Interface) ?
