WebAssembly Runner
Runs locally in your browserInspect, run, and benchmark WASM modules directly in your browser
Upload .wasm
Drop a .wasm file here
One core module up to 10 MiB. It is read in this browser and never uploaded.
Advanced settings
Allowed: 1,000–60,000
Allowed: 1–10,000,000
Allowed: 100–30,000
Inspect, run and profile WASM
Upload a .wasm module, write WAT, or load an example. The module is validated and inspected first: imports, exports, functions with their signatures, memories (pages), tables, globals and custom sections. Supported exports can then be run with typed arguments, benchmarked, stopped and re-instantiated.
Numeric ABI and strict imports
The runner calls exports whose parameters are i32, i64, f32 or f64 with at most one result. i64 values use BigInt end to end, so large integers stay exact. Strings, pointers, references, SIMD, WASI and multi-value results are shown in the inspector but not executed. Imports are never provided implicitly: you choose numeric stubs that return zero, zeroed globals or fresh memories and tables, and unresolved imports block instantiation with the list of missing names.
Benchmarks and memory, measured honestly
Run and Benchmark execute in a dedicated Worker with an iteration cap, a time cap and a timeout; Stop terminates the worker and Reset instance starts clean. Results show instantiation and execution time, average, median, nearest-rank P95 and operations per second. Very fast calls are timed in batches above timer resolution. Linear memory is reported in 64 KiB pages with initial, current and peak observed sizes and growth events for exported or stubbed memories.
Why there is no CPU %, GC count or FPS
Browsers do not expose per-task CPU usage or garbage-collection counters, and function calls do not render frames, so those values are shown as not measured or not applicable instead of being invented. Page JS heap and long-task data appear only when the browser supports them. Findings such as long-running calls, boundary overhead, repeated memory growth or unresolved imports always list the measurement behind them.
Privacy and limits
Modules, WAT source, arguments and results stay in this browser; nothing is uploaded and analytics never receive module content. Uploads are limited to one core module of 10 MiB and WAT to one million characters. The WAT compiler (WABT) is downloaded only when you compile WAT. Timings depend on the browser, device and JIT tier, so compare runs on the same machine.
