WebAssembly Module Inspector
Drop in a WebAssembly .wasm file to see what is inside it. This tool validates the module header, reads the binary version, and walks every section to show its name, size, and byte offset. It also parses the import and export tables so you can see which functions, memories, and globals the module brings in and hands out. Everything is read in your browser and nothing is uploaded.
How to inspect a WebAssembly module
- Drag a .wasm file onto the box, or click to browse for one.
- Read the module version and the table of sections with sizes and offsets.
- Scan the import and export lists to see the module's boundary.
Examples
A module that exports one function
add.wasm (a Type section and an Export section listing main)
Version 1, sections: Type, Export. Exports: main (func). Export count 1.
Frequently asked questions
Is my .wasm file uploaded anywhere?
No. The file is read and parsed entirely in your browser using JavaScript. Nothing is sent to a server, so even unreleased or proprietary modules stay on your device.
How does it read a WebAssembly file?
It checks the 8-byte header (the bytes 00 61 73 6d, which spell \0asm, followed by a little-endian version number) and then walks the section sequence. Each section is a one-byte id, an unsigned LEB128 length, and that many payload bytes. The tool decodes the Type, Function, Import, Export, Memory, and Global sections to surface counts and the import and export lists.
What is a section in a WASM module?
A WebAssembly binary is a list of sections, each with a numeric id. Common ones are Type (1), Import (2), Function (3), Memory (5), Global (6), Export (7), Code (10), and Data (11). Id 0 is a Custom section used for names and debug info. The tool lists every section it finds, in file order.
Why does the file open in the browser instead of running the module?
Inspecting bytes is not the same as executing them. This tool never compiles or runs the WebAssembly, it only reads the structure. That keeps it safe for untrusted files and means it works offline with no network access.
Why might some counts be missing?
A module only carries the sections it needs. If there is no Import section, there is nothing to count, so the import count is left blank. The same goes for exports, functions, memories, and globals. The section table always reflects exactly what the file contains.
Does it work on .wasm files built from Rust, C, or AssemblyScript?
Yes. The binary format is the same regardless of the source language, so a module compiled from Rust, C, C++, Go, or AssemblyScript is read the same way. Names in the export table come straight from the module's own export descriptors.
Related tools
File Type Identifier
Find out what a file really is from its magic bytes, not its extension. Detects images, audio, video, archives, fonts, and more in your browser. Private.
Hex Viewer
View any file as a classic hex dump in your browser: byte offsets, two-digit hex, and an ASCII gutter side by side. Nothing is uploaded. Copy the dump.
Strings Extractor
Extract readable text from any binary file in your browser, like the Unix strings command. See each printable run with its byte offset, set a minimum length.
Base64 File Encoder
Encode any file to Base64 and a data URI in your browser. Drop a file to get the raw Base64 and a ready data: URI to copy. Nothing is uploaded.
CBOR Decoder
Decode a CBOR file (RFC 8949) to readable JSON in your browser. Handles integers, byte strings, arrays, maps, tags, and floats. Nothing is uploaded.
CSV File Inspector
Inspect a CSV file in your browser: detect the delimiter, encoding and BOM, count rows and columns, guess the header, and preview sample rows. Private.