WebAssembly-Runtime: Major Release 1.0 by Wasmer published

Source: Heise.de added 07th Jan 2021

  • webassembly-runtime:-major-release-1.0-by-wasmer-published

With the aim of being able to run independent, platform-dependent applications on every platform, the Wasmer team started developing a Wasm runtime environment around two years ago, which uses Emscripts to compile WebAssembly- Can execute modules independently of the host system – Linux, macOS, OpenBSD, Windows, Android, iOS. The now published version Wasmer 1.0 promises developers the maturity and performance necessary for productive use.

Production-ready performance and more compilers Since the official launch of Wasmer 0. 16 in spring 2020 the team upgraded the runtime environment in several ways. In addition to the performance classified as ready for production, to which, among other things, compilers working in parallel should contribute, the Wasm Runtime comes up with important innovations and improvements. Support for the Wasm-C-API, a native object engine and expandability to integrate various compilers such as LLVM, Cranelift and Single-pass are new.

On the way to the first major release, the team behind the runtime environment has, according to its own statement, made an effort to also include developers who are not familiar with the WebAssembly ecosystem and its concepts in detail To make working with the API as easy as possible. While the Wasmer-C-API originally designed for this purpose should continue to be supported, users of Wasmer 1.0 are encouraged to use the standard Wasm-C-API, which has now matured, as a preference.

use wasmer :: {Store, Module, Instance, Value, imports}; fn main () -> Result {let module_wat = r # “(module (type $ t0 (func (param i 32) (result i 32))) (func $ add_one (export “add_one”) (type $ t0) (param $ p0 i 32) (result i 32) get_local $ p0 i 32. const 1 i 32. add)) “#; let store = Store :: default (); let module = Module :: new (& store, & module_wat); let import_object = imports! {}; let instance = Instance :: new (module, & import_object) ?; let add_one = instance.exports.get_function (“add_one”) ?; let result = add_one.call () ?; assert_eq! (result [0], Value :: I 32 (43)); OK(()) } Wasmer not only implements the cross-platform approach pursued by WebAssembly, but also gives developers the greatest possible freedom in choosing their preferred programming language. The runtime environment can be expanded with a wide variety of compilers. The compiler infrastructure LLVM, the code generator Cranelift, which emerged from the Bytecode Alliance project and written in Rust, and the single-pass back-end, which is recommended for use in environments with limited resources, are already firmly anchored in the scope of delivery of Wasmer 1.0. like IoT devices or blockchain applications.

Headless Wasmer for Edge and IoT Wasmer from version 1.0 can also be used headless, especially for IoT and edge computing environments. The version, which is only a few KByte in size, can run precompiled Wasm binaries on any device thanks to AOT (Ahead Of Time) support. In addition, developers benefit from the extended capabilities of the runtime environment for cross-compilation. Previously, the execution of compiled Wasm applications was limited to the respective platform, now applications can be used across the board – one on x 86 _ 64 – computers compiled app, for example, also on the aarch 64 – architecture and vice versa. The Wasmer developers also claim to offer the first uninterpreted server-side WebAssembly VM that Wasm supports on the new Apple Silicon systems.

A complete overview of all innovations and functions in Wasmer 1.0 can be found in the blog post announcing the production-ready version of Wasm Runtime. Detailed information can be found in the documentation of the open source project. If you want to try Wasmer, you can install Wasm Runtime via the command line from the Wasmer homepage as a stand-alone runtime environment or integrate it into your preferred programming language.

(map)

Read the full article at Heise.de

brands: AIM  Apple  CODE  linux  New  other  Silicon  Team  Value  
media: Heise.de  
keywords: Android  App  Apple  IOS  Open Source  Server  Windows  

Related posts


Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 88

Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 88

Related Products



Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 91

Warning: Invalid argument supplied for foreach() in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 91