A .wasm binary is not meant to be read directly — but it can be turned into WAT, WebAssembly's readable text format, and analyzed structurally beyond just the instruction stream. The WASM Decompiler does both, entirely in your browser.
Be clear about what this is and isn't. This tool does not recover the original Rust, C or C++ source code — that information is gone once the compiler produces WASM. What it does recover, accurately:
- Full WAT disassembly, produced by
wabt(the WebAssembly Binary Toolkit), with debug names applied where the module carries a "name" section. - A call graph, built by walking each function's raw bytecode for
callandcall_indirectinstructions — not guessed from the WAT text. Acall_indirectshows which function-type signature it targets, never a guessed concrete function, because the real target is only resolved at runtime — that's a structural fact about the code, not a limitation of this tool. - Control-flow shape per function: maximum block/loop/if nesting depth, and counts of each, giving a rough sense of how structurally complex a function is without needing a full control-flow graph.
- A best-effort toolchain guess — "likely Rust", "likely Emscripten (C/C++)", or "likely AssemblyScript" — based on real, checkable evidence: Rust's mangled symbol prefixes, Emscripten's characteristic runtime imports (
emscripten_*,__cxa_*,__wasm_call_ctors), or AssemblyScript's~lib/standard-library path strings found in the module's data segments. The tool always shows the specific evidence it found and phrases the result as "likely" — never a certainty, and never a guess with nothing behind it.
A function whose bytecode uses an instruction outside the tool's modeled opcode set (SIMD, atomics, bulk-memory operations) is marked "partial disassembly" rather than silently shown as complete — honesty about the analysis's limits matters more than a tidy result.
Useful for auditing a third-party .wasm module's structure, understanding how its functions call each other, or getting a first read on an unfamiliar binary before deeper analysis.
Tiny Online Tools







