A Function Inliner for Wasmtime and Cranelift
Function inlining is one of the most important compiler optimizations, notbecause of its direct effects, but because of the follow-up optimizations itunlocks. It may reveal, for example, that an otherwise-unknown functionparameter value is bound to a constant argument, which makes a conditionalbranch unconditional, which in turn exposes that the function will always returnthe same value. Inlining is the catalyst of modern compiler optimization.
Posted on Nov 19, 2025Exceptions in Cranelift and Wasmtime
This is a blog post outlining the odyssey I recently took to implementtheWasm exception-handlingproposal inWasmtime, the open-sourceWebAssembly engine for which I’m a coreteam member/maintainer, and itsCraneliftcompiler backend.
Posted on Nov 6, 2025Wasmtime 35 Brings AArch64 Support in Winch
Wasmtime is a fast, secure, standardscompliant and lightweight WebAssembly (Wasm) runtime.
As of Wasmtime 35, Winchsupports AArch64 for CoreWasmproposals, along with additional Wasm proposals like theComponentModel andCustom PageSizes.
Posted on Aug 14, 2025Running WebAssembly (Wasm) Components From the Command Line
Wasmtime’s 33.0.0 release supports invoking Wasm component exports directly from the command line with the new
Posted on May 21, 2025--invokeflag. This article walks through building a Wasm component in Rust and usingwasmtime run --invoketo execute specific functions (enabling powerful workflows for scripting, testing, and integrating Wasm into modern development pipelines).Wasmtime Becomes the First Bytecode Alliance Core Project
The Bytecode Alliance is very happy to announce a significant milestone for bothWasmtime and the Bytecode Alliance: Wasmtime has officially been promoted to become the BA’s first Core Project. As someone deeply involved in Wasmtime and the proposal process, I’m incredibly excited to share this news and what it signifies.
Posted on Apr 30, 2025Wasmtime LTS Releases
Wasmtime is a lightweight WebAssembly runtime built forspeed, security, and standards-compliance. Wasmtime now supportslong-term-support (LTS) releases that are maintained with security fixes for 2years after their initial release.
Posted on Apr 22, 2025WAMR 2024: A Year in Review
In 2024, the WAMR community saw many thrilling advancements, including the development of new features, increased industrial use, and an improved experience for developers. Passionate developers and industry professionals have come together to enhance and expand WAMR in ways we couldn’t have imagined. From exciting new tools to a growing community, there’s a lot to be proud of. Let’s take a closer look at the key highlights of WAMR 2024, showcasing the community’s efforts, new features, and the establishment of the Embedded Special Interest Group (ESIG).
Posted on Feb 19, 2025Bytecode Alliance Election Results
Each December the Bytecode Alliance conducts elections to fill important roles on our governing Board and Technical Steering Committee (TSC). I’m pleased to announce the results of our just-held December 2024 election, in which our Recognized Contributors (RCs) selected three Elected Delegates to the TSC and one At-Large Director to represent them on the Alliance Board.
Posted on Jan 14, 2025Wasmtime 28.0: Optimizing at compile-time, Booleans in the Cranelift DSL, and more
Wasmtime is a lightweight WebAssembly runtime built for speed, security, and standards-compliance. December’s v28.0 release brings enhancements including a new option for optimization at compile-time, a new first-class type for Cranelift’s domain-specific language (DSL), and more.
Posted on Jan 3, 2025Making WebAssembly and Wasmtime More Portable
Portability is among the first properties promoted onWebAssembly’s officialhomepage:
Posted on Dec 17, 2024Wasmtime 27.0: Complete Wasm GC support, PyTorch backend, and more
This month’s v27.0 release ofWasmtime—the fast, secure, and standards-compliant WebAssembly (Wasm) runtime—includes enhancements such as completed support for the new Wasm garbage collection proposal, a PyTorch backend for
Posted on Nov 25, 2024wasi-nn, link-time feature gate configuration for unstable WIT APIs, and more.Wasmtime 26.0: 64-bit tables, shell completions, Windows ARM64 support, and more
Wasmtime is a fast, secure, and standards-compliant WebAssembly runtime. The latest v26.0 release includes enhancements such as implementation of the “table64” extension, a new
Posted on Oct 25, 2024wasmtime completionsubcommand, ARM64 Windows support, and more.Wasmtime v25.0 brings extended constants, WASI 0.2.1, user stack maps, and more
Wasmtime is a lightweight WebAssembly runtime that is fast, secure, and standards-compliant. Today’s release of Wasmtime v25.0 brings enhancements including extended constants, WASI 0.2.1 support, and user stack maps.
Posted on Sep 20, 2024New Stack Maps for Wasmtime and Cranelift
As part of implementing the WebAssembly garbage collection proposal in Wasmtime,which is an ongoing process, we’ve overhauled the stack map infrastructure inCranelift. This post will explain what stack maps are, why we needed to changethem, and how the new stack maps work.
Posted on Sep 10, 2024Our Next Plumbers Summit event - September 26 & 27, 2024
The Bytecode Alliance is pleased to invite you to the next installment in our ongoing Plumbers Summit event series, each designed to bring our members and community contributors together to help set strategic direction and plan efforts for the coming year. Our next Summit will be September 26 and 27, 2024 at the Microsoft Visitor Center in Redmond, Washington. Seating for the in-person session is limited but the event will be live streamed online to support full remote participation.
Posted on Sep 9, 2024Simplifying components for .NET/C# developers with componentize-dotnet
If you’re a .NET/C# developer,
Posted on Sep 3, 2024componentize-dotnetmakes it easy to compile your code to WebAssembly components using a single tool. This Bytecode Alliance project is a NuGet package that can be used to create a fully AOT-compiled component from a .NET application—giving .NET developers a component experience comparable to those in Rust and TinyGo.Announcing WASI 0.2.1
Welcome to the Bytecode Alliance blog. The Bytecode Alliance is a nonprofitorganization dedicated to creating secure new software foundations, building onstandards such as WebAssembly and WebAssemblySystem Interface (WASI).
Posted on Aug 2, 2024The XZ Backdoor and Wasmtime
We are aware that the account responsible for the recentXZ backdoorcontributed a documentation-onlypull request toWasmtime, howeverWasmtime’s safety remains intact. We have reviewed the pull request in detailand confirmed that it only modified a single markdown file, and contained nochanges to source code, build systems, or binaries. Furthermore, thedocumentation was not altered in such a way that it could trick unsuspectingreaders into sabotaging themselves.
Posted on Apr 4, 2024February 2024 Community Stream
On February’s community stream, Bytecode Alliance Technical Steering Committee Director Bailey Hayes and Consulting Executive Director David Bryant provided updates on individual projects, SIGs, and direction for the ecosystem.
Posted on Mar 4, 2024Announcing Jco 1.0
We’re happy to announce the 1.0 release ofJco: a native JavascriptWebAssembly toolchain and runtime built for WebAssembly Components andWASI0.21. Jco cannatively run Wasm Components inside of Node.js, making it easy to take librarieswritten in different programming languages and execute them using the Node.jsruntime. And by implementing the entirety of the WASI 0.2 API surface, thosecomponents can access the network, filesystem, and other system APIs availablein the Node.js runtime.
Posted on Feb 22, 2024WebAssembly Components are an extension to WebAssembly to create strongly typed interfaces between different programs. WASI 0.2 is a re-work of the “WebAssembly System Interfaces” based on WebAssembly Components. The previous version of WASI was not based on components, and as a result was rather limited in what it could express. ↩
Plumber’s Summit Day 2: Async, DevEx, and the road ahead
Last week, the Bytecode Alliance Plumber’s Summit gathered in Raleigh, NC to map the road ahead for the WebAssembly ecosystem.
You can read asummary of the summit’s first day on the Bytecode Alliance blog or watch thefull recording on YouTube. While much of the second day was conducted in breakout sessions, some consistent themes ran through many of those conversations, including the implementation ofasync anddeveloper experience.
Posted on Feb 5, 2024Plumber’s Summit Day 1: Wasmtime and plugins, WASI 0.2.1, OCI artifacts and registry roadmap
The Bytecode Alliance Plumber’s Summit gathered in Raleigh, NC on January 31, 2024 to celebrate the release of WASI 0.2 and collaborate on the next steps forward for the WebAssembly ecosystem.
The first day of the two-day summit focused on topics of general interest, while the second day adopted an “unconference” structure with more narrowly focused breakout sessions.
Posted on Feb 4, 2024WASI 0.2 Launched
The WASI Subgroup voted on January 25, 2024 to launch WASI 0.2, also knownas WASI Preview 2, or WASIp2! This blog post is a brief look at the present,past, and future of WASI, and a repost of an original article sharedhere.
Posted on Jan 25, 2024Wasmtime and Cranelift in 2023
It’s that time of year: time to start winding down for the winter holidayseason, time to reflect on the past year, and time to think about what we canaccomplish together in 2024. The Wasmtime and Cranelift projects are noexception. This article recounts Wasmtime and Cranelift progress in 2023 andexplores what we might do in 2024.
Posted on Nov 21, 2023WebAssembly: An Updated Roadmap for Developers
The WebAssembly (Wasm) ecosystem is transforming. Developers can look forward to a modular, virtualizable, and robust environment for building applications, libraries, and services.
We are excited to be working towards this with implementations for WASI-Preview 2. This roadmap reflects changes occurring in standards within the WebAssembly Community Group (CG) and the WASI Subgroup within the W3C. This includes WebAssembly Core, WebAssembly Component Model, WASI (WebAssembly System Interface), and a number of WASI-based interfaces. This is a big update, and we are excited about the new capabilities on the way.
Posted on Jul 24, 2023Announcing: Componentize the World Hackathon - Sept 8 in Redmond, WA
The Bytecode Alliance is pleased to invite you to our upcoming event, “Componentize the World”, a comprehensive Hackathon taking place in Redmond, Washington on Friday, September 8, 2023 at the Microsoft Executive Briefing Center (Building 33). This WebAssembly hackathon is being held adjacent to the first annual Linux FoundationWasmCon, on September 6 and 7th in Bellevue, Washington .
Register for the Bytecode Alliance WebAssembly Hackathon-Componentize the World now!
Posted on Jul 20, 2023Welcoming Javy: A new hosted project
We’re happy to announce the inclusion ofJavy as a hosted projectunder the Bytecode Alliance. This post will delve into what Javy is, themotivation behind its adoption, and the process that led to its integration intothe Bytecode Alliance.
Posted on Jun 27, 2023Component Model Tooling Compatibility
Here at the Bytecode Alliance, we are very excited about the potential of theWebAssembly Component Model proposal and we understand that many of you are actively exploring ways to build solutions that use WebAssembly components as well!
Posted on Mar 28, 2023Announcing Monthly Community Streams
I am happy to announce that the Bytecode Alliance now hosts acommunity stream the last Tuesday of every month.
Posted on Feb 28, 2023Announcing wasi-threads
Until now, one piece missing from WebAssembly standalone engines was the ability to spawn threads.Browsers have had this ability for some time via Web Workers, but standalone engines had no standardway to do this. This post describes the work of several collaborators to bring aboutwasi-threads, a proposal to add threads to WASI. Itwill explain the history to this proposal, the work done to get to this point, and how one canexperiment with threaded applications in engines like Wasmtime and WAMR. To showcase this, we’lllook at how performing parallel compression with wasi-threads drastically improves performance.
Posted on Feb 21, 2023Using Wasmtime from Ruby
We’re happy to announce the release ofthe
Posted on Jan 24, 2023wasmtimeRubygem, the official embedding of Wasmtimefor Ruby.Cranelift Progress in 2022
Continuing the tradition of a year-end progress report fromlast year, we are excited to report that this year has also been quite a productive one for theCranelift project! Cranelift is our optimizing compiler backend that provides the foundation forWasmtime, aproduction-ready WebAssembly virtual machine, therustc_codegen_cranelift backend for the Rust compiler, and a number of other applications.
Posted on Dec 15, 2022Wasmtime Reaches 1.0: Fast, Safe and Production Ready!
As of today, theWasmtime WebAssembly runtime is now at 1.0! This means that all of us in the Bytecode Alliance agree that it is fully ready to use in production.
Posted on Sep 20, 2022Security and Correctness in Wasmtime
The essence of software engineering is making trade-offs, and sometimesengineers even trade away security for other priorities. When it comes torunning untrusted code from unknown sources, however, exceptionally strongsecurity is simply the bar to clear for serious participation: consider theextraordinary efforts that Web browser and hypervisor maintainers take topreserve their systems’ integrity. WebAssembly runtimes also run untrusted codefrom untrusted sources, and therefore such efforts are also a hard requirementfor WebAssembly runtimes.
Posted on Sep 13, 2022Wasmtime 1.0: A Look at Performance
In preparation for our upcoming release of Wasmtime 1.0 on September20, we have prepared two blog posts describing the work we have putinto the compiler and runtime recently. This first post will describeperformance-related projects: making the compiler generate fastercode, making the compiler itself run faster, making Wasmtimeinstantiate a compiled module faster, and making Wasmtime’s runtime asefficient as possible once the module is running. Our subsequent postwill describe the work we have done to ensure that Wasmtime is secureand that the compiler generates correct code. We’re excited to presentall of our work in both of these directions!
Posted on Sep 6, 2022Cranelift Progress Report: A Look Back at 2021
The past year has been a productive one for theCranelift project! Cranelift is the Bytecode Alliance’s native code compiler that serves as the foundation for theWasmtime andLucet WebAssembly virtual machines, and is used in other contexts as well, e.g. as analternative backend for the Rust compiler.
Posted on Dec 8, 2021Making JavaScript run fast on WebAssembly
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations.
Posted on Jun 2, 2021The Bytecode Alliance Calls for New Members In Mission to Build Safer Software Foundations for the Internet
SAN FRANCISCO — April 28, 2021 — The Bytecode Alliance, a community dedicated to creating new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI), today announced incorporation as a 501(c)(6) non-profit organization. Incorporated byFastly,Intel,Mozilla andMicrosoft, the Bytecode Alliance now invites organizations to join its cross-industry collaborative mission alongside new membersArm,DFINITY Foundation,Embark Studios,Google,Shopify, andUniversity of California at San Diego.
Posted on Apr 28, 2021As WebAssembly grows in popularity, the Bytecode Alliance opens to new members
The Bytecode Alliance has always set sights high on a goal of introducing new foundations for building software. Today, our work toward this goal is entering a new phase: we’re happy toannounce the incorporation of the Bytecode Alliance as a 501(c)(6) nonprofit organization and that we are opening up membership broadly. Starting withArm,DFINITY Foundation,Embark Studios,Google,Shopify, andUniversity of California at San Diego, we’re excited to welcome new collaborators and truly work together on a cross-industry effort to establish the right foundations for building secure and fast software at scale.
Posted on Apr 28, 2021Implementing a WASI Proposal in Wasmtime: wasi-nn
In a previous post,Machine Learning in WebAssembly: Using wasi-nn inWasmtime, we described thewasi-nn specification and a user-level view of its usage in Wasmtime. In this post, we dive intothe details of implementing the proposal usingwasi-nn as an example. If you are interested indesigning new WASI specifications and making them work–especially in the Wasmtime engine–you mayfind this post useful.
Posted on Dec 18, 2020Machine Learning in WebAssembly: Using wasi-nn in Wasmtime
Thewasi-nn proposal allows WebAssembly programs to access host-provided machine learning(ML) functions. This post will explain the motivation for wasi-nn, a brief look at thespecification, and how to use it in Wasmtime to do machine learning inference. You may find thispost interesting if you want to execute ML inference in a standalone WebAssembly runtime (i.e. notin a browser) or if you would like to understand the process for implementing new WASIspecifications. In a follow-on post,Implementing a WASI proposal inWasmtime, I explain how Iimplemented the wasi-nn proposal inWasmtime usingOpenVINO™.
Posted on Dec 14, 2020Bytecode Alliance: One year update
We announced the Bytecode Alliance nearly a year ago, and since then it has been… quite a year 😬
Posted on Oct 26, 2020WebAssembly Reference Types in Wasmtime
A few week ago, I finished implementing support forthe WebAssembly referencetypes proposal in Wasmtime.Wasmtime is a standalone,outside-the-Web WebAssembly runtime, and the reference types proposal isWebAssembly’s first foray beyond simple integers and floating point numbers,into the exciting world of garbage-collected references. This article willexplain what the reference types proposal enables, what it leaves for futureproposals, and how it is implemented in Wasmtime.
Posted on Aug 27, 2020Using WebAssembly from .NET with Wasmtime
Wasmtime, the WebAssembly runtime from theBytecode Alliance, recently added an early preview of an API for.NET Core, Microsoft’s free, open-source, and cross-platform application runtime. This API enables developers to programmatically load and execute WebAssembly code directly from their .NET programs.
Posted on Dec 4, 2019Multi-Value All The Wasm!
Multi-value is a proposed extension to core WebAssembly that enables functions to return many values, among other things. It is also a pre-requisite forWasm interface types.
Posted on Nov 21, 2019New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing
MOUNTAIN VIEW, California November 12, 2019 – The Bytecode Alliance is a newly-formed open source community dedicated to creating new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI). Mozilla, Fastly, Intel, and Red Hat are founding members.
Posted on Nov 12, 2019Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly
Today we announce the formation of the Bytecode Alliance, a new industry partnership coming together to forge WebAssembly’s outside-the-browser future by collaborating on implementing standards and proposing new ones. Our founding members are Mozilla, Fastly, Intel, and Red Hat, and we’re looking forward to welcoming many more.
Posted on Nov 12, 2019