Pourquoi convertir WASM en WAT ?
WAT est la forme textuelle lisible par l'homme de WebAssembly. On convertit un .wasm en .wat pour lire, auditer ou déboguer ce qu'un module fait réellement - ses fonctions, imports et exports - car le binaire lui-même est illisible.
Comment convertir WASM en WAT
wasm-tools print OPEN-SOURCE
Depuis la boîte à outils Bytecode Alliance, exécutez wasm-tools print module.wasm -o module.wat pour écrire le format texte. Omettez -o pour imprimer sur la sortie standard (stdout).
wasm2wat (WABT) OPEN-SOURCE
En utilisant le WebAssembly Binary Toolkit, exécutez wasm2wat module.wasm -o module.wat. Ajoutez --generate-names pour des étiquettes de fonction lisibles et -f pour plier les expressions.
À propos de ces formats
Un fichier .wasm contient un module WebAssembly compilé : un bytecode binaire portable produit à partir de langages comme C, C++ ou Rust et exécuté à une vitesse proche du natif. La plupart…
Ouvrir les détails de .WASM →Un fichier .WAT est associé à IBM Voice Type Languages Map, un fichier de type misc.
Ouvrir les détails de .WAT →Qualité et points de vigilance
- La conversion est fidèle mais n'est pas la source originale : vous voyez des instructions WASM de bas niveau, pas le C/C++/Rust à partir duquel il a été compilé.
- Les fonctions non nommées apparaissent sous forme d'indices numériques à moins de passer un drapeau de génération de noms, ce qui rend les gros modules difficiles à suivre.
- Modifier le WAT et le réassembler avec wat2wasm est possible mais facile à rater pour tout ce qui n'est pas trivial.
Foire aux questions
La conversion wasm-to-wat est-elle sans perte ?
wasm-tools ou wabt - lequel dois-je utiliser ?
Puis-je convertir le WAT en .wasm ?
wat2wasm module.wat -o module.wasm (WABT) le réassemble en binaire.Comment obtenir des noms de fonctions lisibles ?
--generate-names à wasm2wat, ou conservez la section des noms lors de la compilation originale.