wasm2c - Man Page

convert a WebAssembly binary file to a C source and header

Examples (TL;DR)


wasm2c[options] file


wasm2c takes a WebAssembly module and produces an equivalent C source and header.

The options are as follows:


Print a help message


Print version information

-v, --verbose

Use multiple times for more info

-o, --output=FILENAME

Output file for the generated C source file, by default use stdout

-n, --module-name=MODNAME

Unique name for the module being generated. This name is prefixed to each of the generaed C symbols. By default, the module name from the names section is used. If that is not present the name of the input file is used as the default.


Enable Experimental exception handling


Disable Import/export mutable globals


Disable Saturating float-to-int operators


Disable Sign-extension operators


Disable SIMD support


Enable Threading support


Enable Typed function references


Disable Multi-value


Enable Tail-call support


Disable Bulk-memory operations


Disable Reference types (externref)


Enable Custom annotation syntax


Enable Code metadata


Enable Garbage collection


Enable 64-bit memory


Enable Multi-memory


Enable Extended constant expressions


Enable all features


Ignore debug names in the binary file


Parse binary file test.wasm and write test.c and test.h

$ wasm2c test.wasm -o test.c

Parse test.wasm, write test.c and test.h, but ignore the debug names, if any

$ wasm2c test.wasm --no-debug-names -o test.c

See Also

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


If you find a bug, please report it at

Referenced By

spectest-interp(1), wasm2wat(1), wasm-decompile(1), wasm-interp(1), wasm-objdump(1), wasm-opcodecnt(1), wasm-strip(1), wasm-validate(1), wast2json(1), wat2wasm(1), wat-desugar(1).

February 3, 2024