Skip to content

Latest commit

 

History

History
285 lines (211 loc) · 11.1 KB

README.md

File metadata and controls

285 lines (211 loc) · 11.1 KB

Wasmer is a runtime that enables super lightweight containers based on WebAssembly to run anywhere: from Desktop to the Cloud and IoT devices, and also embedded in numerous programming language.

This document is also available in: 🇨🇳 中 文 -Chinese, 🇪🇸 Español-Spanish, 🇫🇷 Français-French, 🇯🇵 日本 語 -Japanese.

Features

  • Fast & Safe. Wasmer runs WebAssembly at near-native speed in a fully sandboxed environment.

  • Pluggable. To best suit your needs, Wasmer supports different compilation strategies (aka the compilers — based on LLVM, based on Cranelift, or Singlepass) and artifact strategies (aka the engines — Universal, Dylib, Staticlib).

  • Universal. You can run Wasmer on any platform (Linux, macOS and Windows) and chipset.

  • Standards compliant. The runtime passes official WebAssembly test suite supporting WASI and Emscripten.

Quickstart

The quickest way to get fun with Wasmer is to install its CLI. It ships with no dependency. Let's first start by installing it, then let's see how to execute a WebAssembly file.

Installing the Wasmer CLI

Wasmer can be installed from various package managers, scripts, or built from sources… Pick what is best for you:

  • With curl
    curl https://get.wasmer.io -sSfL | sh
  • With PowerShell
    iwr https://win.wasmer.io -useb | iex
  • With Homebrew
    brew install wasmer
  • With Scoop
    scoop install wasmer
  • With Chocolatey
    choco install wasmer
  • With Cargo

    The following command will install wasmer-cli. All the available features are described in the wasmer-cli documentation.

    cargo install wasmer-cli
  • From source

    Inside the root of this repository (in this case, you're likely to need some dependencies):

    make build-wasmer

    Read the documentation to learn more about this approach.

  • More installation options? See the wasmer-install repository to learn more!

Executing a WebAssembly file

After installing Wasmer you should be ready to execute your first WebAssembly file! 🎉

You can start by running QuickJS, which is 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

📦 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 headers 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

👋 Missing a language?

Contribute

We welcome any form of contribution, especially from new members of our community 💜

You can check how to build the Wasmer runtime documentation from sources!

Testing

Test you want? The Wasmer docs will show you how.

Community

Wasmer has an amazing community of developers and contributors. You are very welcome! 👋

Channels