Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (33 sloc) 2.78 KB
id title sidebar_label
introduction
Introduction
Introduction

Wasmer Logo

Hello! Welcome to the Wasmer Documentation!

Wasmer is an open-source runtime for executing WebAssembly on the Server. Our mission is make all software universally available.

For an overview of WebAssembly, and what WebAssembly is, take a look here.

Background

By design, the environment within which a WebAssembly module runs is completely isolated (or "sand-boxed") from the native functionality of the underlying host system. This means that WASM modules have no access to anything but pure computation by default. This includes OS-level resources such as file descriptors, network sockets, the system clock, and random numbers.

However, there are many cases in which a WebAssembly module needs to do more than pure computation and must interact with native "OS" functionality. Wasmer therefore acts as the bridge allowing WASM modules to be run either:

  1. Standalone via our runtime, or
  2. By means of our language integration tools, embedded within language runtimes such as C/C++, Python, and Rust

IMPORTANT

The term "OS" used above is in quotes to indicate that the native function being called might not actually involve the host's operating system. In reality, native functions always belong to the host environment within which the WebAssembly module is being run, and that could be either the host language's runtime environment (for example, JavaScript, Python or Ruby), or it might be the actual operating system.

Either way though, from a WebAssembly point of view, we don't need to care too much about this detail. All we need to know is that:

  • The host can provide "imported" functions for the WebAssembly module
  • Via Wasmer's included ABIs (such as WASI and Emscripten]), WebAssembly modules can have access to a set of operating-system-like functions with varying levels of sandboxing

Projects

We also have other projects such as:

  1. The WAPM (WebAssembly Package Manager)
  2. Wasmer-JS
  3. The WebAssembly Shell

to name but a few...

Also, for the latest blogs on Wasmer features and developments, check out our Medium site.

Tutorials

If you would like to see tutorials, examples, or reference API documentation about a specific Wasmer project, please use the sidebar to the left, or the search bar at the top of this page in the header, or take a look at the list below:

You can’t perform that action at this time.