Por que converter WASM para WAT?
WAT é a forma de texto legível por humanos do WebAssembly. As pessoas convertem um .wasm para .wat para ler, auditar ou depurar o que um módulo realmente faz - suas funções, importações e exportações - já que o binário em si é ilegível.
Como converter WASM para WAT
wasm-tools print OPEN-SOURCE
A partir do kit de ferramentas da Bytecode Alliance, execute wasm-tools print module.wasm -o module.wat para gravar o formato de texto. Omita -o para imprimir no stdout.
wasm2wat (WABT) OPEN-SOURCE
Usando o WebAssembly Binary Toolkit, execute wasm2wat module.wasm -o module.wat. Adicione --generate-names para rótulos de função legíveis e -f para expressões dobradas.
Sobre estes formatos
Um arquivo .wasm contém um módulo WebAssembly compilado: um bytecode binário portátil produzido a partir de linguagens como C, C++ ou Rust e executado em velocidade próxima à nativa. A…
Abrir detalhes de .WASM →Um arquivo .WAT está associado ao IBM Voice Type Languages Map, um arquivo do tipo misc.
Abrir detalhes de .WAT →Qualidade e o que observar
- A conversão é fiel, mas não é o código-fonte original: você vê instruções WASM de baixo nível, não o C/C++/Rust do qual foi compilado.
- Funções sem nome aparecem como índices numéricos, a menos que você passe uma flag de geração de nomes, tornando módulos grandes difíceis de acompanhar.
- Editar o WAT e remontar com wat2wasm é possível, mas fácil de errar em qualquer coisa não trivial.
Perguntas frequentes
O wasm-to-wat é lossless?
wasm-tools ou wabt - qual devo usar?
Posso converter o WAT de volta para .wasm?
wat2wasm module.wat -o module.wasm (WABT) o remonta no binário.Como obtenho nomes de funções legíveis?
--generate-names para o wasm2wat, ou mantenha a seção de nomes no build original.