WABT: The WebAssembly Binary Toolkit
A fork of WebAssembly/wabt ported from C++ to Zig and maintained with AI assistance.
100% WebAssembly 3.0 spec conformance — 65,011/65,011 tests passing.
Install
Pre-built binaries are published to GitHub Releases and PyPI. See installation details.
$ dist install cataggar/wabt
$ uv tool install wabt-bin
Tools
- 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. Similar to objdump.
- wasm-interp: decode and run a WebAssembly binary file using a stack-based interpreter
- wasm-decompile: decompile a wasm binary into readable C-like syntax
- wat-desugar: parse .wat text form and print canonical flat format
- 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
Building
Requires Zig 0.15.x. No other dependencies.
$ git clone --recursive https://github.com/cataggar/wabt
$ cd wabt
$ zig build
For release builds:
$ zig build -Doptimize=ReleaseSafe
Cross-compilation works out of the box:
$ zig build -Dtarget=aarch64-linux -Doptimize=ReleaseSafe
$ zig build -Dtarget=aarch64-macos -Doptimize=ReleaseSafe
$ zig build -Dtarget=x86_64-windows -Doptimize=ReleaseSafe
Running tests
Unit tests:
$ zig build test
Wasm 3.0 spec tests:
$ zig build -Doptimize=ReleaseSafe
$ ./zig-out/bin/spectest-interp third_party/testsuite/i32.wast
Wasm 3.0 proposals
All ratified Wasm 3.0 proposals are enabled by default:
| Proposal | Status |
|---|---|
| Exception handling | ✓ |
| GC (garbage collection) | ✓ |
| Memory64 | ✓ |
| Multi-memory | ✓ |
| Tail calls | ✓ |
| Relaxed SIMD | ✓ |
| Extended const | ✓ |
| SIMD | ✓ |
| Bulk memory | ✓ |
| Reference types | ✓ |
| Multi-value | ✓ |
| Annotations | ✓ |
License
Release files for wabt-bin 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| wabt_bin-2.2.0-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| wabt_bin-2.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| wabt_bin-2.2.0-py3-none-musllinux_1_1_x86_64.whl | Python 3 | none | Linux musl 1.1+ x86-64 | Details |
| wabt_bin-2.2.0-py3-none-musllinux_1_1_aarch64.whl | Python 3 | none | Linux musl 1.1+ ARM64 | Details |
| wabt_bin-2.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| wabt_bin-2.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| wabt_bin-2.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| wabt_bin-2.2.0-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 14.9 MB
Release files / wabt_bin-2.2.0-py3-none-win_arm64.whl
| Download URL | wabt_bin-2.2.0-py3-none-win_arm64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
1afa81259eb656b6825ee69f486b9bebb7a8b3575ad94ed5f165a5b1e6736f2f
|
|
BLAKE2b-256 checksum How to use checksums |
aa68958b48eef68ff2e2cf0eddd2a178ba4fdb2b15e2844b2f386b768cbdce12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-win_amd64.whl
| Download URL | wabt_bin-2.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2da990f9a8405c002a476a9a7d59b6db4f9dcbdebfa852eaa3956be8b680dab5
|
|
BLAKE2b-256 checksum How to use checksums |
4ebca3f20351dbcf723c41693245891374df813a8689ecc94045e8171958c4f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-musllinux_1_1_x86_64.whl
| Download URL | wabt_bin-2.2.0-py3-none-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux musl 1.1+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
285617455fd836d3a838e3fa7d433ca96b55c4f1997b33cea421797f13f51da2
|
|
BLAKE2b-256 checksum How to use checksums |
281b3588c205069f2386b570aea922db695c7f131182a3fd9aad002bb516d4ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-musllinux_1_1_aarch64.whl
| Download URL | wabt_bin-2.2.0-py3-none-musllinux_1_1_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Linux musl 1.1+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
8c52d6a2fec5f908106bf9c6d54484bb4038a2b04de452930e5b97b63f5a5a3b
|
|
BLAKE2b-256 checksum How to use checksums |
ca3d6f65abd45bc60c6df096bc2156d9a160a90472cd69f8eddb4d4549612568
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | wabt_bin-2.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
4348b85e9f0223989c2dc77dd25b46d99ea110c055c18948f4033e33e4c9139e
|
|
BLAKE2b-256 checksum How to use checksums |
7eb86f9cdb5726c5f4015a7daf834603b6cce716d71919b89559f29b10aedb8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | wabt_bin-2.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
06b734f566aae61268ff2036b97747303081c97f97e92b5d804588c6ca02858f
|
|
BLAKE2b-256 checksum How to use checksums |
d85b1c58a15175685012f5663a38390f34251eb286ea0683fb571cda37715fba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | wabt_bin-2.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5766b949618fd7d4c05e6dc48423d9a27aa3e1ad8e60a4c99d20ca304031043c
|
|
BLAKE2b-256 checksum How to use checksums |
bfb81d94e9380c4af79345a2764baecce8c9558d12094b99f4db0b14d17a9d4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / wabt_bin-2.2.0-py3-none-macosx_10_9_x86_64.whl
| Download URL | wabt_bin-2.2.0-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
1779e452b8b4241a70a84dad5b60d45208dd2c7a2e54b203f0ba3f1759e3285c
|
|
BLAKE2b-256 checksum How to use checksums |
f85ecf53b09cabdcdcc40689223d3a25ff5a3ef87c666761d651d76dba40b1a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency log