Reference

wasm-interp(1)

decode and run a WebAssembly binary file

NAME

wasm-interp – decode and run a WebAssembly binary file

SYNOPSIS

wasm-interp [options] filename [arg]...

DESCRIPTION

wasm-interp read a file in the wasm binary format, and run in it a stack-based interpreter.

The options are as follows:

--help

Print this help message

--version

Print version information

-v, --verbose

Use multiple times for more info

--disable-exceptions

Disable Experimental exception handling

--disable-mutable-globals

Disable Import/export mutable globals

--disable-saturating-float-to-int

Disable Saturating float-to-int operators

--disable-sign-extension

Disable Sign-extension operators

--disable-simd

Disable SIMD support

--enable-threads

Enable Threading support

--enable-function-references

Enable Typed function references

--disable-multi-value

Disable Multi-value

--disable-tail-call

Disable Tail-call support

--disable-bulk-memory

Disable Bulk-memory operations

--disable-reference-types

Disable Reference types (externref)

--disable-annotations

Disable Custom annotation syntax

--enable-code-metadata

Enable Code metadata

--enable-gc

Enable Garbage collection

--disable-memory64

Disable 64-bit memory

--disable-multi-memory

Disable Multi-memory

--disable-extended-const

Disable Extended constant expressions

--disable-relaxed-simd

Disable Relaxed SIMD

--enable-custom-page-sizes

Enable Custom page sizes

--enable-compact-imports

Enable Compact import section

--enable-wide-arithmetic

Enable Wide arithmetic

--enable-all

Enable all features

-V, --value-stack-size=SIZE

Size in elements of the value stack

-C, --call-stack-size=SIZE

Size in elements of the call stack

-t, --trace

Trace execution

-r, --run-export=FUNCTION

Run exported function by name

-a, --argument=ARGUMENT

Add argument to an exported function execution

--wasi

Assume input module is WASI compliant (Export WASI API the the module and invoke _start function)

-e, --env=ENV

Pass the given environment string in the WASI runtime

-d, --dir=DIR

Pass the given directory the the WASI runtime

--run-all-exports

Run all the exported functions, in order. Useful for testing

--host-print

Include an importable function named "host.print" for printing to stdout

EXAMPLES

parse binary file test.wasm, and type-check it

$ wasm-interp test.wasm

parse test.wasm and run all its exported functions

$ wasm-interp test.wasm --run-all-exports

parse test.wasm, run the exported functions and trace the output

$ wasm-interp test.wasm --run-all-exports --trace

parse test.wasm and run all its exported functions, setting the value stack size to 100 elements

$ wasm-interp test.wasm -V 100 --run-all-exports

parse test.wasm, run specific exported function by name with argument

$ wasm-interp test.wasm -r func_sum -a i32:8 -a i32:5

SEE ALSO

wasm-objdump(1), wasm-stats(1), wasm-strip(1), wasm-validate(1), wasm2c(1), wasm2wat(1), wast2json(1), wat-desugar(1), wat2wasm(1), spectest-interp(1)

BUGS

If you find a bug, please report it at
https://github.com/WebAssembly/wabt/issues.

History

--argument since Arch Linux 2026-11-01; --dir since Debian 12 (Bookworm); --disable-annotations since Arch Linux 2026-11-01; --disable-bulk-memory since Debian 12 (Bookworm); --disable-exceptions since Arch Linux 2026-11-01; --disable-extended-const since Arch Linux 2026-11-01; --disable-memory64 since Arch Linux 2026-11-01; --disable-multi-memory since Arch Linux 2026-11-01; --disable-multi-value since Debian 12 (Bookworm); --disable-reference-types since Debian 12 (Bookworm); --disable-relaxed-simd since Arch Linux 2026-11-01; --disable-saturating-float-to-int since Debian 12 (Bookworm); --disable-sign-extension since Debian 12 (Bookworm); --disable-simd since Debian 12 (Bookworm); --disable-tail-call since Arch Linux 2026-11-01; --enable-all since Debian 12 (Bookworm); --enable-code-metadata since Debian 12 (Bookworm); --enable-compact-imports since Arch Linux 2026-11-01; --enable-custom-page-sizes since Arch Linux 2026-11-01; --enable-function-references since Debian 12 (Bookworm); --enable-gc since Debian 12 (Bookworm); --enable-wide-arithmetic since Arch Linux 2026-11-01; --env since Debian 12 (Bookworm); --run-export since Arch Linux 2026-11-01; --version since Debian 12 (Bookworm); --wasi since Debian 12 (Bookworm); -a since Arch Linux 2026-11-01; -d since Debian 12 (Bookworm); -e since Debian 12 (Bookworm); -r since Arch Linux 2026-11-01.

--dummy-import-func until Debian 13 (Trixie); --enable-annotations until Debian 13 (Trixie); --enable-exceptions until Debian 13 (Trixie); --enable-extended-const until Debian 13 (Trixie); --enable-memory64 until Debian 13 (Trixie); --enable-multi-memory until Debian 13 (Trixie); --enable-saturating-float-to-int until Debian 11 (Bullseye); --enable-sign-extension until Debian 11 (Bullseye); --enable-simd until Debian 11 (Bullseye); --enable-tail-call until Debian 13 (Trixie).