The Wasmer runtime is intended to make WebAssembly a universal target for compilation by allowing developers to use WebAssembly “anywhere,” similar to the JVM, which provides a portable execution environment for Java applications.
Introduced in December 2018 and offered under an MIT license, Wasmer is a standalone just-in-time runtime, positioned to be compatible with WASI (WebAssembly System Interface) and the Emscripten compiler for asm.js and WebAssembly. Wasmer can execute the standard binary format, .wasm files, and the text format defined by the WebAssembly reference interpreter, .wat files.
Wasmer can run WebAssembly modules, including standalone programs with a CLI or other interface, or universal libraries, which are built to be used from any language. These include libraries such as GraphQL. Wasmer can be embedded in the following languages:
Wasmer CEO Syrus Akbary expects WebAssembly to gain wide adoption, and aims to build the next generation of application-based containers based on WebAssembly, with fast startup time and small application size. These are intended to power edge computing platforms.
Wasmer recently rolled out WebAssembly Interfaces, which permit static checks on modules to ensure they will run and stay compatible with a given API. WebAssembly Interfaces allow plug-in ecosystems to be distributed and used safely in Wapm. Interfaces can be defined for use in building Wasmer platform plug-ins.