backgroundradial

Announcing Wasmer 6.0 - closer to Native speeds!

Wasmer 6.0 packages all backends together, pushes the LLVM backend to within 5 % of native performance, introduces zero‑cost WebAssembly Exceptions and more!

syrusakbary avatar
syrusakbary
Syrus Akbary

Founder & CEO

arrowBack to articles
Post cover image

Today we are extremely excited to announce Wasmer 6.0.

Since launching Wasmer 5.0 we added support for V8, Wasmi, WAMR and other back‑ends—but you could only compile a single backend into each binary. Shipping multiple binaries was painful for both library authors and Edge deployments.

Wasmer 6.0 removes that limitation and delivers a 30-50 % speedup.

What has changed since Wasmer 5.0?

  • Improved LLVM backend to run WebAssembly at near-native speeds
  • We added support for zero-cost WebAssembly Exceptions (in LLVM, V8 and JS backends), speeding up PHP by 3-4x (blogpost coming soon!) - check our most recent presentation in Wasm I/O 2025 (video!
  • We have added support for switching backends at runtime (wasmer run … --v8 , wasmer run ... --jsc, …)
  • Improved WASIX
  • Multiple Bugfixes and improvements

Install the latest version of Wasmer with:

curl https://get.wasmer.io -sSfL | sh

Improved LLVM backend to run Wasm at near-native speeds

At Wasmer we have been obsessed about speed since our inception.

We revamped the LLVM code‑generator to eliminate redundant passes and tighten register allocation based on a new experimental pass.

Here are some benchmarks:

  • Coremark: native (100 % speed), Wasmer 5 (90%), Wasmer 6 (95 %)
  • WordPress (cold-start times): native PHP (100 %), Wasmer 5 (54 %), Wasmer 6 (80 %)
  • PHPBench: native PHP (100 %), Wasmer 5 (37 %), Wasmer 6 (69 %)

Wasmer 6.0 Benchmark - Coremark

Wasmer 6.0 Benchmark - PHPBench

Wasmer 6.0 Benchmark - WordPress

Based on this, we made the decision to replace Cranelift with LLVM for production workloads in Wasmer Edge, bringing a much faster experience for our customers.

Supporting WebAssembly Exceptions (with LLVM and V8)

This release finally brings long-awaited support for the WASM exceptions proposal, unlocking performance improvements and better support for languages that rely on exceptions.

Until today, we relied on asyncify to run setjmp / longjmp (among others). While asyncify is great, it adds an overhead of 20-50% slower code execution.

We refactored WASIX to implement setjmp / longjmp via WebAssembly exceptions. This, paired with a new proc_spawn syscall, brings the speed of running complex PHP apps from 100ms in Cranelift (without exceptions, with asyncify) to 25ms in LLVM (with Exceptions).

We have also opened a few PRs to contribute our changes to the Wasm-C-API upstream (adding support for Wasm Exceptions).

Supporting multiple backends at runtime

Most of the internals of the Wasmer API have been refactored. The good news is that the API that you are used to remains the same, with some minor exceptions:

  • Some System traits and types moved from wasmer:: to wasmer::sys::
  • Wasm-C-API support has been revamped, allowing using the backends dynamically

Improving WASIX

We improved a lot of the WASIX internals:

  • Sub‑processes & pipes — fully isolated yet fast IPC.
  • Filesystem — smarter inode caching and COW reduce RAM in multi‑tenant edge environments.
  • posix_spawn — to avoid using the heavy fork under the hood (and lighten the asyncify requirement)

Multiple Bugfixes and improvements

The Wasmer CLI experience was improved on multiple fronts. Right now you can create packages with a .wasmerignore file, that will indicate which files to ignore (similar to .dockerignore).

We also revamped the wasmer create-exe and wasmer compile flows, making them way more robust.

We also updated the license of some libraries (Singlepass), to allow a sustainable future for them: you can read more about it here.


Ready to go near‑native? Install Wasmer with one command and unleash the full power of WebAssembly:

curl https://get.wasmer.io -sSfL | sh

Or use it using Cargo:

wasmer = { version="6.0.0", features=[ "v8", "cranelift" ] }

Getting Started with Wasmer 6.0

Ready to dive in? Here's how you can start exploring the new features:

  • Download Wasmer 6.0: Get the latest version from our official website.
  • Update Your Projects: Upgrade your existing Wasmer projects to leverage the new capabilities.
  • Explore the Documentation: Visit our updated docs for detailed guides and tutorials.
  • Join the Community: Connect with other developers on our Discord server and share your experiences.

Looking Ahead

Wasmer 6.0 is a significant step forward in our mission to empower developers thanks to the exciting possibilities that WebAssembly brings to the table. We can't wait to see what you'll build next with Wasmer.


Stay Updated

Thank you everyone for being part of the Wasmer journey!

About the Author

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 Wasm

Syrus Akbary avatar
Syrus Akbary
Syrus Akbary

Founder & CEO

Read more
Post cover image

releaseruntime

Introducing Wasmer 5.0

Syrus AkbaryOctober 29, 2024

edgereleaseruntimesinglepass

Announcing Wasmer 4.3.0

Syrus AkbaryMay 10, 2024

runtimeengineeringwasmer runtime

Wasmer 2.0, It's a big deal!

Syrus AkbaryJune 2, 2021

runtimeengineeringwasmer 2.1

Wasmer-JS: A New Hope

Syrus AkbaryDecember 7, 2021

Announcing Wasmer 6.0 - closer to Native speeds! · Blog · Wasmer