Hvorfor konvertere WASM til WAT?
WAT er den menneskevennlige tekstformen av WebAssembly. Folk konverterer en .wasm til .wat for å lese, revidere eller feilsøke hva en modul faktisk gjør - dens funksjoner, importer og eksporter - siden selve binærfilen er uleselig.
Hvordan konvertere WASM til WAT
wasm-tools print OPEN-SOURCE
Fra Bytecode Alliance-verktøysettet, kjør wasm-tools print module.wasm -o module.wat for å skrive tekstformatet. Utelat -o for å skrive til stdout.
wasm2wat (WABT) OPEN-SOURCE
Bruk WebAssembly Binary Toolkit og kjør wasm2wat module.wasm -o module.wat. Legg til --generate-names for lesbare funksjonsnavn og -f for å folde uttrykk.
Om disse formatene
En .wasm-fil inneholder en kompilert WebAssembly-modul: portabel binær bytekode produsert fra språk som C, C++ eller Rust, og kjøres med nær-nativ hastighet. De fleste .wasm-filer lastes av…
Åpne .WASM-detaljer →En .WAT-fil er assosiert med IBM Voice Type Languages Map, en misc-fil.
Åpne .WAT-detaljer →Kvalitet og hva du bør passe på
- Konverteringen er nøyaktig, men er ikke den originale kildekoden: du ser WASM-instruksjoner på lavnivå, ikke C/C++/Rust-koden den ble kompilert fra.
- Navnløse funksjoner vises som numeriske indekser med mindre du bruker et flagg for navnegenerering, noe som gjør store moduler vanskelige å følge.
- Det er mulig å redigere WAT og re-assemblere med wat2wasm, men det er lett å gjøre feil for alt som er mer enn trivielt.
Ofte stilte spørsmål
Er wasm-to-wat tapsfri?
wasm-tools eller wabt - hvilken bør jeg bruke?
Kan jeg konvertere WAT tilbake til .wasm?
wat2wasm module.wat -o module.wasm (WABT) reassemblerer den til binærformat.Hvordan får jeg lesbare funksjonsnavn?
--generate-names med wasm2wat, eller behold navneseksjonen i det opprinnelige bygget.