9 releases (4 stable)

2.0.0 Jun 16, 2021
2.0.0-rc2 Jun 3, 2021
1.0.2 Feb 5, 2021
1.0.1 Jan 13, 2021
1.0.0-rc1 Dec 23, 2020

#19 in WebAssembly

Download history 2154/week @ 2021-04-03 2370/week @ 2021-04-10 4381/week @ 2021-04-17 3391/week @ 2021-04-24 3386/week @ 2021-05-01 3058/week @ 2021-05-08 2747/week @ 2021-05-15 2559/week @ 2021-05-22 2428/week @ 2021-05-29 2161/week @ 2021-06-05 3053/week @ 2021-06-12 4106/week @ 2021-06-19 3606/week @ 2021-06-26 3833/week @ 2021-07-03 4955/week @ 2021-07-10 3131/week @ 2021-07-17

11,538 downloads per month
Used in 35 crates (via wasmer)

MIT license

16KB
356 lines


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 • 🇪🇸 Español-Spanish • 🇫🇷 Français-French • 🇯🇵 日本 語 -Japanese.

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

    Note: All the available features are described in the wasmer-cli crate docs

    cargo 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 logo Rust wasmer Rust crate Learn
C logo C/C++ wasmer.h header Learn
C# logo C# WasmerSharp NuGet package Learn
D logo D wasmer Dub package Learn
Python logo Python wasmer PyPI package Learn
JS logo Javascript @wasmerio NPM packages Learn
Go logo Go wasmer Go package Learn
PHP logo PHP wasm PECL package Learn
Ruby logo Ruby wasmer Ruby Gem Learn
Java logo Java wasmer/wasmer-jni Bintray package Learn
Elixir logo Elixir wasmex hex package Learn
R logo R no published package Learn
Postgres logo Postgres no published package Learn
Swift no published package
Zig logo Zig no published package
Dart logo Dart no published package

👋  Missing a language?

Contribute

We appreciate your help! 💜

Check our docs on how to build Wasmer from source or test your changes.

Community

Wasmer has an amazing community of developers and contributors. Welcome, please join us! 👋

Dependencies

~0.4–0.8MB
~19K SLoC