---
name: "wasm2c"
section: "1"
platform: "linux"
package: "wabt"
version: "1.0.42-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/wasm2c"
---

# wasm2c(1)

convert a WebAssembly binary file to a C source and header

## NAME

**wasm2c** – convert a WebAssembly binary file to a C source and header

## SYNOPSIS

**wasm2c** \[options\] *filename*

## DESCRIPTION

**wasm2c** Read a file in the WebAssembly binary format, and convert it to  a C source file and header.

The options are as follows:

- **-****-help**

  Print this help message

- **-****-version**

  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

- **-****-num-outputs=NUM**

  Number of output files to write

- **-n**, **-****-module-name=MODNAME**

  Unique name for the module being generated. This name is prefixed toeach of the generated C symbols. By default, the module name from thenames section is used. If that is not present the name of the inputfile is used as the default.

- **-****-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

## EXAMPLES

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-interp(1)](/wasm-interp/1.md), [wasm-objdump(1)](/wasm-objdump/1.md), [wasm-stats(1)](/wasm-stats/1.md), [wasm-strip(1)](/wasm-strip/1.md), [wasm-validate(1)](/wasm-validate/1.md), [wasm2wat(1)](/wasm2wat/1.md), [wast2json(1)](/wast2json/1.md), [wat-desugar(1)](/wat-desugar/1.md), [wat2wasm(1)](/wat2wasm/1.md), [spectest-interp(1)](/spectest-interp/1.md)

## BUGS

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