Wasmer Features
The Wasmer WebAssembly runtime provides various features for users and developers:
    Compilers: Wasmer supports multiple compilers: Singlepass, Cranelift and LLVM. Each of these have different tradeoffs of compilation speed vs runtime speed;
    Caching: compiled WebAssembly modules can be reused so subsequent runs of a Wasm file will have very little start up time;
    Metering: computation time and other resources can be monitored and limits set to control how the Wasm code runs. This is also known as "gas metering";
    WebAssembly Features:
      Bulk-memory operations: e.g. instructions with behavior similar to C's memmove and memset in WebAssembly;
      Multi-value return: return multiple values from functions making data transfer between host and guest simpler;
      Import & export of mutable globals: adds ability to import and export mutable globals;
      Non-trapping float-to-int conversions: this proposal would establish a convention for saturating operations, to avoid introducing trapping;
      Sign-extension operations: adds five new integer instructions for sign-extending 8-bit, 16-bit, and 32-bit values;
      Reference types: easier and more efficient interop with host environment;
      SIMD: Single Instruction, Multiple data: do heavy number crunching more quickly and/or with lower power usage.
      Threads: adds a new shared linear memory type and some new operations for atomic memory access;
    ABIs: it allows running different types of programs compiled to WebAssembly, with ABIs such as:
      Emscripten
      WASI

Support of features by Compiler

Runtime features:
​
Singlepass
Cranelift
LLVM
Emscripten
βœ…
βœ…
βœ…
WASI
βœ…
βœ…
βœ…
WebAssembly features:
​
Singlepass
Cranelift
LLVM
Bulk memory operations
βœ…
βœ…
βœ…
Multi-value return
πŸ”„
βœ…
βœ…
Import & export of mutable globals
βœ…
βœ…
βœ…
Non-trapping float-to-int conversions
βœ…
βœ…
βœ…
Sign-extension operations
βœ…
βœ…
βœ…
Reference types
πŸ”„
βœ…
βœ…
SIMD (Phase 4)
βœ…
βœ…
βœ…
Threads (Phase 2)
βœ…
πŸ”„
βœ…

Legend

    βœ… Supported
    πŸ”„ In the works
    ⬜ Not yet supported (please ping us if you need this feature!)

Support by Operating System

​
Linux
macOS
Windows
Cranelift
βœ…
βœ…
βœ…
LLVM
βœ…
βœ…
βœ…
Singlepass
βœ…
βœ…
βœ…
WASI
βœ…
βœ…
βœ…*
* poll_fd is not fully implemented for Windows yet

Compiler Support by Chipset

​
x86_64
arm64
x86
Cranelift
βœ…
βœ…
βœ…
LLVM
βœ…
βœ…
βœ…
Singlepass
βœ…
πŸ”„
⬜

Language Embeddings

Wasmer enables WebAssembly usage in a lot of different languages. Here are some of the features in each of those:
​
Rust
C / C++
Go
Python
Ruby
Terminate in host call
βœ…
⬜
βœ…
βœ…
βœ…
WASI
βœ…
βœ…
βœ…
βœ…
βœ…
WASI FS API
βœ…
⬜
⬜
⬜
⬜
Serialize/Deserialize
βœ…
βœ…
βœ…
βœ…
βœ…
Metering
βœ…
⬜
⬜
⬜
⬜
Last modified 14d ago