Available Wasmer 2.0, tools for creating applications based on Webassembly

took place The second significant release of the project wasmer , Developing Runtime To perform Webassembly modules, which can be used to create universal applications that can be performed in different operating systems, as well as for an isolated code that does not deserve confidence. The project code is written in the language of Rust and spreads under the MIT license.

portability is ensured by compiling the application code into low-level intermediate webssembly code, which It can run in any OS or integrate into programs in other programming languages. Programs are lightweight containers in which Pseudocode Webassembly. These containers are not tied to the operating system and may include the code, originally written in any programming language. To compile the emscripten can be used to compile in WebASSEMBLY. To broadcast webassembly in the currently operating code of the current platform, the connection of different compilation backends is supported ( SinglePass , Cranelift, LLVM) and engines (engagement JIT or machine code generation).

Access control and interaction with the system is provided using the WASI API (Webassembly System Interface) providing software interfaces for working with files, sockets and other functions provided by the operating system. Applications are isolated from the main system in the Sandbox-environment and have access only to the claimed functionality (security mechanism based on opportunities – for action with each of the resources (files, catalogs, sockets, system calls, etc.) the appliance must be given Powers).

To start a webassembly container, it is enough to install in the system Runtime Wasmer , which comes without external dependencies (“CURL HTTPS: / /Get.wasmer.io -ssfl | sh “), and run the desired file (” Wasmer Test.wasm “). Programs are distributed in the form of conventional Webassembly modules, to control which you can use a batch manager WAPM . Wasmer is also available in the library form that can be used to embed Webassembly code in RUST programs, C / C ++, C #, D, Python, JavaScript, GO, PHP, Ruby, Elixir and Java.

The platform allows you to achieve performance of applications close to the implementation of native assemblies. Using a Native Object Engine for a WebAssembly module, you can generate a machine code (“Wasmer Compile –Native” to generate precompiled .SO, .Dylib and .dll object files), to start which the minimum runtime is required, but all the features of Sandbox-isolation are preserved. . Possible delivery of precompiled programs with built-in Wasmer. To create add-ons and additions, Rust API and WASM-C-API

/Media reports.