WASM-DIS(1)

πŸ“¦
version 131 Β· 3 versions
, in ubuntu stonking

πŸ’… NAME πŸ’…

ok so wasm-dis β€” bestie, she Un-assembles a .wasm (WebAssembly binary format) into a .wat (WebAssembly text

(yeah the original line just kinda trails off there, we're keeping it πŸ’–)


✨ DESCRIPTION ✨

okay so picture this: you got a .wasm file, which is the WebAssembly binary format. It's giving ✨unreadable✨. And you want a .wat, which is the WebAssembly text format. That's it, that's the whole job. wasm-dis does that conversion for you, no cap. πŸ¦‹

================================================================================
wasm-dis INFILE

Un-assemble a .wasm (WebAssembly binary format) into a .wat (WebAssembly
text format)
================================================================================

πŸŽ€ wasm-dis options: πŸŽ€

  • --output, -o β€” the output file!! If you don't say anything, she writes to stdout (so like, straight to your terminal, main character behavior 🌸)
  • --source-map, -sm β€” eat a source map from the file you name, so your output gets location information sprinkled in there πŸ’«

🧚 Tool options: 🧚

  • --mvp-features, -mvp β€” turn OFF every single non-MVP feature. all of them. bye πŸ‘‹
  • --all-features, -all β€” turn ON every single feature. yes queen, all of it πŸ‘‘
  • --detect-features β€” > deprecated, bestie!! this flag does literally nothing. it's just vibes now 😭
  • --quiet, -q β€” less yapping, and hide the trivial warnings. she's being lowkey 🀫
  • --experimental-poppy β€” parse wast files as Poppy IR, purely for testing purposes πŸ§ͺ
  • --emit-module-names β€” emit module names even if you're not emitting the rest of the names section ✨
  • --enable-sign-ext β€” enable sign extension operations
  • --disable-sign-ext β€” disable sign extension operations
  • --enable-threads β€” enable atomic operations
  • --disable-threads β€” disable atomic operations
  • --enable-mutable-globals β€” enable mutable globals
  • --disable-mutable-globals β€” disable mutable globals
  • --enable-nontrapping-float-to-int β€” enable nontrapping float-to-int operations
  • --disable-nontrapping-float-to-int β€” disable nontrapping float-to-int operations
  • --enable-simd β€” enable SIMD operations and types
  • --disable-simd β€” disable SIMD operations and types
  • --enable-bulk-memory β€” enable bulk memory operations
  • --disable-bulk-memory β€” disable bulk memory operations
  • --enable-bulk-memory-opt β€” enable memory.copy and memory.fill
  • --disable-bulk-memory-opt β€” disable memory.copy and memory.fill
  • --enable-call-indirect-overlong β€” enable LEB encoding of call-indirect (this one is Ignored for compatibility as it has no effect on Binaryen πŸ’€)
  • --disable-call-indirect-overlong β€” disable LEB encoding of call-indirect (also Ignored for compatibility, also has no effect on Binaryen πŸ’€)
  • --enable-exception-handling β€” enable exception handling operations
  • --disable-exception-handling β€” disable exception handling operations
  • --enable-tail-call β€” enable tail call operations
  • --disable-tail-call β€” disable tail call operations
  • --enable-reference-types β€” enable reference types
  • --disable-reference-types β€” disable reference types
  • --enable-multivalue β€” enable multivalue functions
  • --disable-multivalue β€” disable multivalue functions
  • --enable-gc β€” enable garbage collection
  • --disable-gc β€” disable garbage collection
  • --enable-memory64 β€” enable memory64
  • --disable-memory64 β€” disable memory64
  • --enable-relaxed-simd β€” enable relaxed SIMD
  • --disable-relaxed-simd β€” disable relaxed SIMD
  • --enable-extended-const β€” enable extended const expressions
  • --disable-extended-const β€” disable extended const expressions
  • --enable-strings β€” enable strings
  • --disable-strings β€” disable strings
  • --enable-multimemory β€” enable multimemory
  • --disable-multimemory β€” disable multimemory
  • --enable-stack-switching β€” enable stack switching
  • --disable-stack-switching β€” disable stack switching
  • --enable-shared-everything β€” enable shared-everything threads
  • --disable-shared-everything β€” disable shared-everything threads
  • --enable-fp16 β€” enable float 16 operations
  • --disable-fp16 β€” disable float 16 operations
  • --enable-custom-descriptors β€” enable custom descriptors (RTTs) and exact references
  • --disable-custom-descriptors β€” disable custom descriptors (RTTs) and exact references
  • --enable-multibyte β€” enable multibyte array loads and stores
  • --disable-multibyte β€” disable multibyte array loads and stores
  • --enable-relaxed-atomics β€” enable acquire/release atomic memory operations
  • --disable-relaxed-atomics β€” disable acquire/release atomic memory operations
  • --enable-custom-page-sizes β€” enable custom page sizes
  • --disable-custom-page-sizes β€” disable custom page sizes
  • --enable-wide-arithmetic β€” enable wide arithmetic
  • --disable-wide-arithmetic β€” disable wide arithmetic
  • --enable-compact-imports β€” enable compact import section
  • --disable-compact-imports β€” disable compact import section
  • --enable-typed-function-references β€” > Deprecated compatibility flag!! it's a relic bestie 🫢
  • --disable-typed-function-references β€” > Deprecated compatibility flag!! also a relic 🫢
  • --no-validation, -n β€” disables validation entirely and just assumes your inputs are correct. > careful with this one, she's not checking your work anymore πŸ’€
  • --pass-arg, -pa β€” an argument passed along to the optimization passes being run. Must be in the form KEY@VALUE. If KEY is the name of a pass then it applies to the closest instance of that pass before us. If KEY is not the name of a pass then it is a global option that applies to all pass instances that read it. iykyk πŸ’…
  • --closed-world, -cw β€” assume code outside of the module does not inspect or interact with GC and function references, even if they are passed out. The outside may hold on to them and pass them back in, but not inspect their contents or call them. she trusts nobody's nosy hands 😌
  • --preserve-type-order β€” preserve the order of types from the input (so useful for debugging and testing fr fr πŸ”₯)
  • --generate-stack-ir β€” generate StackIR during writing
  • --optimize-stack-ir β€” optimize StackIR during writing
  • --print-stack-ir β€” print StackIR during writing

🌈 General options: 🌈

  • --version β€” output version information and exit ⭐
  • --help, -h β€” show this help message and exit 🫢
  • --debug, -d β€” print debug information to stderr πŸ”

and that's the whole page, bestie!! πŸ’– go un-assemble something iconic, you absolute legend. this little gem is from wasm-dis version 131, dated August 2026, man page name WASM-DIS(1) β€” periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from