Wasmer 2.1 supporting JS, Singlepass in Windows, iOS, LLVM 13, reproducible builds and many more features
Founder & CEO
December 1, 2021
After a few months of work, we are super happy to announce the general availability of Wasmer 2.1. Packed with amazing new features and bug fixes, including:
Wasmer 2.1 also kicks off the company's transition to a milestone-driven public roadmap and delivery process
Click here for more information on current and future milestones.
Below is a summary of some new features and highlights.
The new release of wasmer-js
leverages the Wasmer WASI Rust implementation thanks to wasm-bindgen
. As a result, we offer seamless cross-platform support for WebAssembly applications that leverage the exact WASI implementation in the browser or on the server, including platforms like Node.js or Deno using js-default
.
You can now run in the browser your Rust projects using Wasmer just by doing:
[dependencies]
wasmer = { version = "2.1.0", default-features=false, features=["js-default"]}
Stay tuned for a detailed blog post on how to use it!
In order to run Wasmer and WASI on Javascript environments where the access to the host filesystem is limited, we created a in-memory filesystem that allows running WASI literally anywhere.
This approach is similar to the popular JS package MemFS, but fully implemented in Rust.
Due to App Store JIT compiler restrictions, building WebAssembly components for iOS required pre-approval from Apple or users manually installed the modules on devices. With Wasmer 2.1, you can precompile a .wasm
into a .dylib
and then load it using the Dylib Engine at runtime. No App Store pre-approval is required. You can find a complete example here:
https://github.com/wasmerio/wasmer/tree/master/tests/integration/ios/DylibExample
The Wasmer Runtime and its Singlepass compiler are fast becoming secret weapons for blockchain companies and Web3 infrastructure providers. Companies and sponsors using Wasmer and Singlepass as a part of their infrastructure include Near Protocol, Confio, Spacemesh, Dusk Network, ElrondNetwork, etc. With Wasmer 2.1, our customers and sponsors can seamlessly leverage Singlepass on any Windows infrastructure.
Before Wasmer 2.1, the Dylib engine was the only option for LLVM. Additional support for more relocations in our Universal Engine makes it trivial to compile and run LLVM on Aarch64.
We have upgraded the LLVM version from 11 to 13. It has some notable improvements regarding compilation speed with the new pass manager.
You can check the complete list of improvements for LLVM 13 and 12 here: https://releases.llvm.org/13.0.0/docs/ReleaseNotes.html https://releases.llvm.org/12.0.0/docs/ReleaseNotes.html
Thanks to contributions by one of our sponsors, NEAR Protocol, compilation time with Wasmer's Singlepass compiler is up to 10x faster when compiling tons of functions with a small body. Leveraging VecAsssmbler from Dynasm-rs, we eliminated the need to make a system call to add newly created functions into memory.
Deterministic builds are a critical feature for many of our customers in the Web3 space. Users can trust that wasmer compile
generates identical reproducible artifacts for a given compiler/engine.
We couldn't be happier about the new language integrations of Wasmer created by our awesome community. The integrations allow developers to WebAssembly in even more languages:
If you already have Wasmer installed, you can upgrade to 2.1 by running
wasmer self-update
If you are installing Wasmer for the first time, you can use one of the methods listed below:
# Using Shell (macOS and Linux):
curl https://get.wasmer.io -sSfL | sh
# Using PowerShell (Windows):
iwr https://win.wasmer.io -useb | iex
# Using Homebrew (macOS):
brew install wasmer
# Using Scoop (Windows):
scoop install wasmer
# Using Chocolatey (Windows):
choco install wasmer
The full release notes, including bug fixes, can be found at: https://github.com/wasmerio/wasmer/releases/tag/2.1.0
If you're interested in becoming an Open Source Sponsor or for information on our sponsorship program, click here.
Syrus Akbary is an enterpreneur and programmer. Specifically known for his contributions to the field of WebAssembly. He is the Founder and CEO of Wasmer, an innovative company that focuses on creating developer tools and infrastructure for running WebAss
Founder & CEO
engineeringwasmer runtimewasmerruntimeperformance
Arshia GhafooriSeptember 7, 2023
runtimeengineeringwasmer runtime
Syrus AkbaryFebruary 28, 2022