Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. WebAssembly
  3. wasm2c

wasm2c

Apache-2.0C++1.0.40

A suite of command-line tools for manipulating WebAssembly files, including conversion between binary and text formats.

GitHubGitHub
8.0k stars809 forks0 contributors

What is wasm2c?

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.

Target Audience

Toolchain developers, compiler engineers, and systems programmers who need to integrate WebAssembly manipulation, validation, or conversion into their workflows or larger projects.

Value Proposition

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.

Overview

The WebAssembly Binary Toolkit

Use Cases

Best For

  • Converting WebAssembly text format (.wat) to binary (.wasm)
  • Disassembling WebAssembly binaries back to human-readable text
  • Validating WebAssembly modules for spec compliance
  • Decompiling Wasm binaries to inspect logic and structure
  • Interpreting WebAssembly code in a standalone environment
  • Integrating WebAssembly tooling into custom compilers or build systems

Not Ideal For

  • Projects requiring WebAssembly optimization or minification (e.g., using Binaryen for size/speed improvements)
  • Developers needing a graphical IDE or GUI for WebAssembly editing and debugging
  • Production environments that require a high-performance WebAssembly runtime (use engines like V8 or Wasmtime instead)
  • Teams building end-user applications without deep integration into WebAssembly toolchains

Pros & Cons

Pros

Strict Spec Compliance

Prioritizes full fidelity and 1:1 round-trips with the WebAssembly specification, ensuring accurate file manipulation without altering instructions, as emphasized in its philosophy.

Comprehensive Utility Suite

Includes essential tools like wat2wasm, wasm2wat, wasm-interp, and wasm-decompile, covering conversion, validation, interpretation, and decompilation for most low-level WebAssembly tasks.

Extensive Proposal Support

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.

Easy System Integration

Designed in C/C++ for integration into larger toolchains, unlike the spec interpreter, making it suitable for embedding in compilers or build systems.

Cons

No Optimization Features

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.

Complex Build Process

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.

Incomplete Tool Support for Proposals

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.

Frequently Asked Questions

Quick Stats

Stars7,960
Forks809
Contributors0
Open Issues174
Last commit16 days ago
CreatedSince 2015

Tags

#webassembly#c-plus-plus#spec-compliance#binary-format

Built With

N
Ninja
C
CMake
C
C++

Included in

WebAssembly27
Auto-fetched 1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub