19 lines
1.1 KiB
Text
19 lines
1.1 KiB
Text
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
|
|
size and speed. 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.
|