Qu'est-ce que le format de fichier WASM ?
Un fichier .wasm est un module WebAssembly compilé : un bytecode binaire portable pour une machine virtuelle basée sur une pile. Les développeurs écrivent du code en C, C++, Rust, Go ou un autre langage pris en charge et le compilent en .wasm pour qu'il s'exécute à une vitesse proche du natif. Sur le web, le module s'exécute aux côtés de JavaScript ; le navigateur le récupère et l'exécute dans un bac à sable (sandbox) sans accès direct à votre système.
WebAssembly est un standard ouvert du W3C WebAssembly Working Group, stable pour la première fois en mars 2017 et une recommandation du W3C depuis décembre 2019. Chaque module commence par un en-tête de 8 octets 00 61 73 6D 01 00 00 00 (la chaîne \0asm plus un champ de version), suivi de sections numérotées pour les types, les importations, les fonctions, la mémoire, les exportations et le code. L'équivalent textuel lisible est le format .wat.
Sécurité et sûreté
RISQUE : MEDIUMWebAssembly runs inside a sandbox with no direct access to the file system, network, or DOM unless the host grants it, so a module cannot escape on its own. The risk comes from what the surrounding page or runtime allows: malicious sites have used Wasm for in-browser cryptomining and for obfuscating logic that is harder to read than JavaScript. Only run standalone .wasm files from sources you trust, since a WASI runtime can be given file and network permissions.
Détails du format
en bref- Wavefront / general 3D scene data - A few older or niche 3D and simulation tools have used .wasm for scene or mesh data, unrelated to WebAssembly.
- Application-specific save or cache files - Some standalone programs have reused the .wasm extension for internal data files; these are not WebAssembly modules and lack the \0asm header.
Programmes qui ouvrent les fichiers WASM
.wasm served by a page and shows the disassembled module in the Debugger panel. .wasm modules automatically when a web page instantiates them; DevTools can disassemble and debug them. wasm2wat file.wasm -o file.wat to disassemble the binary into readable text; wasm-objdump prints section details. wasm2wat file.wasm; installable via Homebrew. wasm2wat file.wasm or dump sections with wasm-objdump -x file.wasm. Détails techniques
spécifications approfondies| Encoding | Binary bytecode (stack-machine instructions) |
| Byte order | Little-endian for multi-byte scalars; LEB128 for integers |
| Container | Module = 8-byte header followed by a sequence of numbered sections |
| Compression | None built in; commonly served with gzip or Brotli over HTTP |
| Typical size | Tens of KB to several MB depending on the compiled program |
| Structure | Header (magic + version) then sections: Type, Import, Function, Table, Memory, Global, Export, Start, Element, Code, Data, plus optional Custom sections (names, DWARF debug info). |
| Integrity | No internal checksum; integrity handled by transport (HTTPS) or Subresource Integrity on the web |
| Platforms | Windows, macOS, Linux, Android, iOS, Web |
| Initial Release Full | March 2017 (MVP / binary format version 1) |
| Notes | Text-format counterpart is the .wat file. Source languages such as C, C++, Rust and Go compile to .wasm. Runs sandboxed in browsers and in standalone runtimes (Wasmtime, Wasmer, WasmEdge, WAMR). WASI extends it to server and CLI use. |
| Instruction Set | Virtual stack machine, structured control flow, 32/64-bit integers and floats, linear memory |
| Debug Info | Optional DWARF data and a name section carried in Custom sections |
| Publié | 2017 |
| Dernière version | WebAssembly 3.0 (2025); binary version field 0x01 |
| Standard ouvert | Oui · libre de droits |
| Spécification | webassembly.github.io |
Conversions WASM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers WASM.
Foire aux questions
Comment ouvrir un fichier WASM ?
wasm2wat file.wasm de WABT, ou exécutez-le hors d'un navigateur avec Wasmtime ou Wasmer.Puis-je modifier un fichier WASM ?
.wat avec wasm2wat, modifiez-le, puis réassemblez-le avec wat2wasm. Pour des modifications réelles, vous modifiez normalement la source originale en C, C++ ou Rust et recompilez.Quelle est la différence entre .wasm et .wat ?
.wasm est le binaire compact qu'une machine exécute ; .wat est le texte équivalent lisible par l'homme (WebAssembly Text Format). Ils se convertissent l'un vers l'autre sans perte avec WABT.Pourquoi mon navigateur télécharge-t-il un fichier .wasm au lieu de l'exécuter ?
.wasm avec le type MIME application/wasm. S'il est servi comme un type générique ou texte, le navigateur peut le télécharger ou refuser la compilation en flux. Corrigez le type de contenu du serveur.Un fichier WASM est-il sûr à exécuter ?
Quels programmes créent des fichiers WASM ?
wasm32 avec wasm-pack, TinyGo/Go et Clang/LLVM produisent des sorties .wasm.