wat2wasm1
Translate from webassembly text format to the webassembly binary format
Usage
wat2wasm [options]
filename
Overview
wat2wasm read a file in the wasm text format, check it for errors, and convert it to the wasm binary format.
The options are as follows:
-
--help -
Print this help message
-
--version -
Print version information
-
-v, --verbose -
Use multiple times for more info
-
-d, --dump-module -
Print a hexdump of the module to stdout
-
--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
-
-o, --output=FILE -
Output wasm binary file. Use "-" to write to stdout.
-
-r, --relocatable -
Create a relocatable wasm binary (suitable for linking with e.g. lld)
-
--no-canonicalize-leb128s -
Write all LEB128 sizes as 5-bytes instead of their minimal size
-
--debug-names -
Write debug names to the generated binary file
Examples
parse test.wat and write to .wasm binary file with the same name
$ wat2wasm test.wat
parse test.wat and write to binary file test.wasm
$ wat2wasm test.wat -o test.wasm
parse spec-test.wast, and write verbose output to stdout (including the meaning of every byte)
$ wat2wasm spec-test.wast -v
Releases
5 releases since Debian 10 (Buster); the text changed 3 times.
--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;
--version since Debian 12 (Bookworm).
--debug-parser 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);
--no-check until Debian 13 (Trixie).