Wasmer Features

The Wasmer WebAssembly runtime provides various features for users and developers:

  • Backends: Wasmer supports multiple compiler backends: 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:

    • Multi-value return: return multiple values from functions making data transfer between host and guest simpler;

    • SIMD: Single Instruction, Multiple data: do heavy number crunching more quickly and/or with lower power usage.

  • ABIs: it allows running different types of programs compiled to WebAssembly, with ABIs such as:

    • Emscripten

    • WASI

Support of features by Backend

Singlepass

Cranelift

LLVM

Caching

βœ…

βœ…

βœ…

Emscripten

βœ…

βœ…

βœ…

Metering

βœ…

βœ…

βœ…

Multi-value return

βœ…

βœ…

βœ…

SIMD

⬜

⬜

βœ…

WASI

βœ…

βœ…

βœ…

WASMER_BACKTRACE

βœ…

⬜

⬜

Legend

  • βœ… Supported

  • πŸ”„ In the works

  • ⬜ Not yet supported (please ping us if you need this feature!)

Support by Operating System

GNU Linux

Mac OSX

Windows NT

Cranelift Backend

βœ…

βœ…

βœ…

LLVM Backend

βœ…

βœ…

βœ…

Singlepass Backend

βœ…

βœ…

WASI

βœ…

βœ…

βœ…*

  • poll_fd is not fully implemented for Windows yet

Language integration

TODO: define a set of features that are relevant and mark them here

Current ideas:

  • Callbacks

  • Metering

  • Caching

TODO: expand this table, it's focused on new features that we haven't implemented yet and doesn't list all language integrations

Rust

C / C++

Go

Python

Ruby

Terminate in host call

βœ…

⬜

⬜

⬜

⬜

WASI

βœ…

βœ…

πŸ”„

⬜

⬜

WASI FS API

βœ…

⬜

⬜

⬜

⬜

Last updated

Was this helpful?