With Wasmer 2.3, the server-side Wasmer WebAssembly runtime debuts new native compilation capabilities and a new stack switching library called Corosensei.
Introduced June 7, Wasmer version 2.3 is a precursor to a planned “big” 3.0 release of the open source WebAssembly runtime. Wasmer can be accessed from the technology’s website.
With the new release, Wasmer now compiles to Wasm/WASI (WebAssembly System Interface). This was done in an effort to enable compilation of WebAssembly to native entirely in WebAssembly, for use in future products. Also in the compilation vein, Wasmer 2.3 improves unwinding support in the Singlepass compiler to offer better backtraces and make it possible to run Singlepass with a Dylib engine.
Wasmer supports the Cranelift and LLVM compilers. Wasmer 2.3 uses Cranelift 0.82, enabling Wasmer to fully support SIMD instructions and a new compilation strategy using ISLE, a domain-specific language for instruction selection.
The new stack switcher, Corosensei, handles crossing from the host language to the Wasm/WebAssembly world. Prior to Wasmer 2.3, WebAssembly calls were made using the same stack used in Wasm, potentially making Wasmer vulnerable to attacks on the stack. The new stack switching library, Coronsei, based in Rust, brings Wasmer about halfway to supporting async import calls within Wasmer natively. It also supports backtraces and panic propagation.