Compiled Rust and C++ symbol names are mangled — encoded into a compact ASCII form that packs in namespaces, generic arguments and function signatures. _ZN4core3fmt5Write9write_fmt17h... is not meant for a human to read, but the information in it is: which crate, which module, which function. The WASM Demangler unpacks that, entirely in your browser.
Two ways to use it:
- Single symbol — paste one mangled name and see it demangled instantly as you type. Supports Itanium C++ (
_Z…), Rust's legacy Itanium-based mangling (_ZN…17h[hash]), and Rust's newer v0 scheme (_R…). - Bulk scan — upload a
.wasmfile and the tool extracts every function name from the module's debug "name" section plus every export name, then demangles all of them at once into a searchable table you can copy from or export as CSV.
A word on honesty, because it matters here: Itanium C++ demangling covers the common subset of the ABI (nested names, templates, substitutions, operators) and is checked against c++filt on real-world symbols. Rust's legacy scheme rides on top of Itanium and is equally solid. Rust's v0 scheme is considerably more complex — this tool reconstructs the path (crate, module, function names) on a best-effort basis, but does not reconstruct the full generic-argument list or impl/trait structure, and back-references and punycode-encoded identifiers are left undecoded. Every v0 result that involves this simplification is marked "partial" and comes with a note explaining exactly what's missing — never presented as a complete demangle. A symbol that matches no known mangling scheme is shown as-is, clearly marked unrecognized, not silently dropped.
Useful when auditing a third-party .wasm module, understanding a crash stack trace, or just exploring what a compiled Rust or C++ binary actually contains.
Tiny Online Tools







