Paul Krill
Editor at Large

Wasmer WebAssembly platform now backs iOS

news
Oct 30, 20242 mins
Mobile DevelopmentSoftware DevelopmentWeb Development

Wasmer 5.0 release also features improved performance, a leaner codebase, and discontinued support for the Emscripten toolchain.

An assortment of colorful building blocks. Build, assemble, WebAssembly
Credit: locrifa/Shutterstock

Wasmer 5.0, the latest stable version of the WebAssembly-based runtime, has been released with support for the iOS mobile operating system. The release also features a leaner codebase and enhanced performance, and support for the Emscripten compiler toolchain has been dropped.

Announced October 29, Wasmer 5.0 can be accessed from wasmer.io. With Wasmer 5.0, WebAssembly is brought to iOS devices through an interpreted mode. Using the capabilities of Google’s V8 JavaScript/WebAssembly engine, the Wasmi interpreter, and the WebAssembly Micro Runtime (WAMR), developers now can run WebAssembly modules on Apple’s iOS. This opens up the possibility for high-performance applications within Apple’s ecosystem, Wasmer CEO Syrus Akbary said. V8, Wasmi, and WAMR serve as back ends with experimental support from Wasmer.

For the codebase, this release emphasized making it as lean as possible to enable faster development of new features. This involved dropping support for Emscripten, whose bindings were mostly unused for the last two years. Dependencies were also trimmed, with a net result of 20,000 lines of code deleted in the Wasmer codebase. In the enhanced performance vein, module deserialization is now as much as 50% faster when developers call Module::deserialize or run a module via wasmer run.

In another improvement, LLVM 18  is included, to ensure developers have the latest optimizations from the toolchain, Wasmer said. The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. LLVM and the Cranelift compiler back end are about 8% faster in Wasmer 5.0 compared to version 4.4.0, Wasmer said.

The Wasmer runtime is an engine for running WebAssembly modules and Wasmer packages. The Wasmer ecosystem also features the Wasmer Registry, for storing packages, and Wasmer Edge, a cloud platform.