compiler and toolchain infrastructure library for WebAssembly


Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++. It aims to make compiling to WebAssembly easy, fast, and effective:

 * Easy: Binaryen has a simple C API in a single header, and can also be used
   from JavaScript. It accepts input in WebAssembly-like form but also
   accepts a general control flow graph for compilers that prefer that.

 * Fast: Binaryen's internal IR uses compact data structures and is designed
   for completely parallel codegen and optimization, using all available CPU
   cores. Binaryen's IR also compiles down to WebAssembly extremely easily and
   quickly because it is essentially a subset of WebAssembly.

 * Effective: Binaryen's optimizer has many passes that can improve code very
   significantly (e.g. local coloring to coalesce local variables; dead code
   elimination; precomputing expressions when possible at compile time; etc.).
   These optimizations aim to make Binaryen powerful enough to be used as a
   compiler backend by itself. One specific area of focus is on
   WebAssembly-specific optimizations (that general-purpose compilers might not
   do), which you can think of as wasm minification , similar to minification
   for JavaScript, CSS, etc., all of which are language-specific (an example of
   such an optimization is block return value generation in SimplifyLocals).

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install binaryen