WebAssembly Runner

Runs locally in your browser

Inspect, 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.

CodingTool is officially live on

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools