← All repos

binaryen

Optimizer and compiler/toolchain library for WebAssembly

compilersc-plus-plusemscriptenhacktoberfestwebassembly
Browse cluster: WebAssembly Specification and Proposals
8,896commits
219contributors
8languages

Tech stack & purpose

Binaryen is a compiler and toolchain infrastructure library for WebAssembly written in C++. It is designed to make compiling to WebAssembly easy, fast, and effective by providing a simple C API and JavaScript bindings, accepting WebAssembly-like input as well as control flow graphs, and featuring a compact internal representation optimized for parallel codegen and optimization. The project includes an optimizer with numerous passes for improving code size and speed, plus toolchain utilities such as `wasm-opt` for optimization, `wasm-as` and `wasm-dis` for assembly and disassembly, `wasm2js` for compilation to JavaScript, `wasm-shell` for interpretation, and `binaryen.js` for use as a standalone JavaScript library. Binaryen is used as a component by Emscripten, wasm-pack, and other toolchains, and as a library by compilers like AssemblyScript, Asterius, and Grain.

Community & reference links

Languages

WebAssembly
63.5%
C++
28.0%
JavaScript
5.9%
Python
1.6%
C
0.9%
CMake
0.1%
Shell
0.0%
Assembly
0.0%

Contributors (top 30 of 219)