$ account WebAssembly
Binaryen is a production-grade compiler and toolchain infrastructure library for WebAssembly, written in C++. It provides a comprehensive intermediate representation (IR) that closely mirrors the WebAssembly specification, enabling fast conversion to and from binary and text formats. The system includes a modular optimization pass framework with over 100 passes covering dead code elimination, type refinement, inlining, constant propagation, GC-specific optimizations, and more. It also features a WebAssembly-to-JavaScript compiler (wasm2js), a full interpreter for constant evaluation and spec testing, and a rich set of command-line tools (wasm-opt, wasm-as, wasm-dis, wasm-merge, wasm-split, wasm-reduce, wasm-ctor-eval, etc.). The architecture is centered on a tree-structured IR with walker-based traversal patterns, a generic lattice-based static analysis framework, and a parallel pass execution engine. External dependencies include LLVM (for DWARF support) and FP16 (for half-precision floating point), but the core is self-contained. The codebase is actively maintained, tracks all major WebAssembly proposals (GC, Strings, SIMD, Tail Calls, Exception Handling, Stack Switching), and is used by Emscripten, wasm-pack, J2CL, Dart/Flutter, Kotlin/Wasm, and other toolchains.