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:
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 Compiler
Singlepass | Cranelift | LLVM | |
Caching | â | â | â |
Emscripten | â | â | â |
Metering | â | â | â |
Multi-value return | đ | â | â |
SIMD | âŦ | â | â |
WASI | â | â | â |
| â | â | âŦ |
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 updated