Wasmer allows you to run WebAssembly modules either Standalone or Embedded within other languages such as C/C++, Rust, Python, Go, PHP, Ruby...
By design, the environment within which a WebAssembly module runs is completely isolated (or sandboxed) from the native functionality of the underlying host system. This means that by default, Wasm modules are designed to perform nothing more than pure computation.
Consequently, access to "OS"-level resources such as file descriptors, network sockets, the system clock, and random numbers is not normally possible from WASM.
However, there are many cases in which a Wasm module needs to do more than perform pure computation; they must interact with native "OS" functionality.
Wasmer is designed to provide three key features:
Enable programs to run in any programming language
Enable extremely portable binaries to run unmodified on any "OS" supported by Wasmer (for example, Linux, macOS, Windows and FreeBSD).
For the first case, we offer multiple language integrations, that allow the same Wasm module to be run from within any programming language.
And for the second case, we offer our Standalone Runtime to run Wasm binaries on any platform and chipset.
And many more (for which we will be creating docs here soon!)
Let's now get started with the Wasmer Standalone Runtime!