WebAssembly /wabt

The WebAssembly Binary Toolkit

★ 8,197⑂ 842
Created 2015-09-14
TA的项目
8,197
stars
+6+6+51
842
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

WABT: The WebAssembly Binary Toolkit

WABT (we pronounce it "wabbit") is a suite of tools for WebAssembly, including:

 - wat2wasm: translate from WebAssembly text format to the WebAssembly binary format
 - wasm2wat: the inverse of wat2wasm, translate from the binary format back to the text format (also known as a .wat)
 - wasm-objdump: print information about a wasm binary. Similiar to objdump.
 - wasm-interp: decode and run a WebAssembly binary file using a stack-based interpreter
 - wat-desugar: parse .wat text form as supported by the spec interpreter (s-expressions, flat syntax, or mixed) and print "canonical" flat format
 - wasm2c: convert a WebAssembly binary file to a C source and header
 - wasm-strip: remove sections of a WebAssembly binary file
 - wasm-validate: validate a file in the WebAssembly binary format
 - wast2json: convert a file in the wasm spec test format to a JSON file and associated wasm binary files
 - wasm-stats: output stats for a module
 - spectest-interp: read a Spectest JSON file, and run its tests in the interpreter

These tools are intended for use in (or for development of) toolchains or other
systems that want to manipulate WebAssembly files. Unlike the WebAssembly spec
interpreter (which is written to be as simple, declarative and "speccy" as
possible), they are written in C/C++ and designed for easier integration into
other systems. Unlike Binaryen these
tools do not aim to provide an optimization platform or a higher-level compiler
target; instead they aim for full fidelity and compliance with the spec (e.g.
1:1 round-trips with no changes to instructions).

 Online Demos

Wabt has been compiled to JavaScript via emscripten. Some of the functionality is available in the following demos:

- index
- wat2wasm
- wasm2wat

 Supported Proposals

 Proposal: Name and link to the WebAssembly proposal repo
 flag: Flag to pass to the tool to enable/disable support for the feature
 default: Whether the feature is enabled by default
 binary: Whether wabt can read/write the binary format
 text: Whether wabt can read/write the text format
 validate: Whether wabt can validate the syntax
 interpret: Whether wabt can execute these operations in wasm-interp or spectest-interp
 wasm2c: Whether wasm2c supports these operations

| Proposal   | flag | default | binary | text | validate | interpret | wasm2c |
| --------------------- | --------------------------- | - | - | - | - | - | - |
| [exception handling][]| --disable-exceptions      | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| [mutable globals][]   | --disable-mutable-globals | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| [nontrapping float-to-int conversions][] | --disable-saturating-float-to-int | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| [sign extension][]    | --disable-sign-extension  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| [simd][]              | --disable-simd            | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| [threads][]           | --enable-threads          |   | ✓ | ✓ | ✓ | ✓ |   |
| [multi-value][]       | --disable-multi-value     | ✓ | ✓ |

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON