Wasmer is a fast and secure WebAssembly runtime that enables super lightweight containers to run anywhere: from Desktop to the Cloud, Edge and IoT devices.
This document is also available in:
๐จ๐ณ ไธญ ๆ -Chinese โข๐ฉ๐ช Deutsch-German โข๐ช๐ธ Espaรฑol-Spanish โข๐ซ๐ท Franรงais-French โข๐ฏ๐ต ๆฅๆฌ ่ช -Japanese โข๐ฐ๐ท ํ๊ตญ์ด -Korean.
Features
- Secure by default. No file, network, or environment access, unless explicitly enabled.
- Supports WASI and Emscripten out of the box.
- Fast. Run WebAssembly at near-native speeds.
- Embeddable in multiple programming languages
- Compliant with latest WebAssembly Proposals (SIMD, Reference Types, Threads, ...)
Install
Wasmer CLI ships as a single executable with no dependencies.
curl https://get.wasmer.io -sSfL | sh
Other installation options (Powershell, Brew, Cargo, ...)
Wasmer can be installed from various package managers. Choose the one that fits best for your environment:
-
Powershell (Windows)
iwr https://win.wasmer.io -useb | iex
-
Homebrew (macOS, Linux)
brew install wasmer
-
Scoop (Windows)
scoop install wasmer
-
Chocolatey (Windows)
choco install wasmer
-
cargo binstall wasmer-cli
-
Note: All the available features are described in the
wasmer-cli
crate docscargo install wasmer-cli
Looking for more installation options? See the
wasmer-install
repository to learn more!
Quickstart
You can start by running
QuickJS, a small and
embeddable Javascript engine compiled as a WebAssembly module (qjs.wasm
):
$ wasmer qjs.wasm
QuickJS - Type "\h" for help
qjs > const i = 1 + 2;
qjs > console.log("hello " + i);
hello 3
Here is what you can do next:
๐ฆ Language Integrations
The Wasmer runtime can be used as a library embedded in different languages, so you can use WebAssembly anywhere.
Language | Package | Documentation | |
---|---|---|---|
Rust | wasmer Rust crate |
Learn | |
C | wasm.h header |
Learn | |
C++ | wasm.hh header |
Learn | |
C# | WasmerSharp NuGet package |
Learn | |
D | wasmer Dub package |
Learn | |
Python | wasmer PyPI package |
Learn | |
Javascript | @wasmerio NPM packages |
Learn | |
Go | wasmer Go package |
Learn | |
PHP | wasm PECL package |
Learn | |
Ruby | wasmer Ruby Gem |
Learn | |
Java | wasmer/wasmer-jni Bintray package |
Learn | |
R | no published package | Learn | |
Postgres | no published package | Learn | |
Swift | no published package | ||
Zig | no published package | ||
Dart | wasm pub package |
||
Crystal | no published package | Learn | |
Lisp | no published package | ||
Julia | no published package | ||
V | no published package | ||
OCaml | wasmer OCaml package |
Contribute
We appreciate your help!
We recommend reading the following guide on how to contribute into a complex project successfully: https://mitchellh.com/writing/contributing-to-complex-projects
Check our docs on how to build Wasmer from source or test your changes.
Bounties
For some issues we offer paid bounties. You'll get paid automatically as soon as your PR solving the issue is merged!
Community
Wasmer has an amazing community of developers and contributors. Welcome, please join us!