A suite of command-line tools for manipulating WebAssembly files, including conversion between binary and text formats.
WABT is a suite of command-line tools for manipulating WebAssembly files. It enables developers to convert between WebAssembly's binary and text formats, validate modules, decompile binaries, and interpret code, serving as essential infrastructure for WebAssembly toolchains.
Toolchain developers, compiler engineers, and systems programmers who need to integrate WebAssembly manipulation, validation, or conversion into their workflows or larger projects.
Developers choose WABT for its strict adherence to the WebAssembly specification, comprehensive set of utilities, and focus on providing reliable, low-level tooling without the overhead of optimization frameworks.
The WebAssembly Binary Toolkit
Prioritizes full fidelity and 1:1 round-trips with the WebAssembly specification, ensuring accurate file manipulation without altering instructions, as emphasized in its philosophy.
Includes essential tools like wat2wasm, wasm2wat, wasm-interp, and wasm-decompile, covering conversion, validation, interpretation, and decompilation for most low-level WebAssembly tasks.
Implements and validates numerous WebAssembly proposals such as SIMD, threads, and bulk memory, with configurable flags to enable or disable features, keeping pace with the evolving standard.
Designed in C/C++ for integration into larger toolchains, unlike the spec interpreter, making it suitable for embedding in compilers or build systems.
Explicitly avoids providing optimization or higher-level compilation targets, as stated in the README, making it unsuitable for performance-critical transformations compared to tools like Binaryen.
Requires cloning submodules and using CMake or Make with specific configurations (e.g., separate build directories), which can be cumbersome for quick setups or less experienced developers.
Some tools, like wasm2c, lack support for certain proposals (e.g., threads and relaxed-SIMD are marked as unsupported in the proposal table), limiting functionality in specific use cases.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.