Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,25 @@ All active WASI proposals can be found on the [WASI GitHub repository](https://g

WASI runtimes are tested against a shared test suite, [`wasi-testsuite`](https://github.com/WebAssembly/wasi-testsuite), which exercises interfaces from WASI 0.1 and WASI 0.3 across runtime implementations. The repository includes a test runner with adapters for the major runtimes (Wasmtime, jco, WAMR, and others), and is the shared reference for verifying runtime conformance.

## Component Model features

WASI APIs are defined in terms of the [Component Model](https://component-model.bytecodealliance.org/), which introduces new WIT syntax, types, and Canonical ABI functionality behind [gated features](https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md#gated-features): opt-in flags marking work that is not yet part of the default feature set. A stable WASI API, one marked `@since` rather than `@unstable`, may depend on a gated feature only after the WASI Subgroup votes to adopt it, using the same kind of Subgroup vote as a phase advancement.

Adoption is cumulative. Implementing a given WASI version requires the ungated Component Model features, plus every feature adopted in that version and in all earlier versions. Adoption does not mean that any WASI API uses the feature yet. It means that WASI APIs in that release and later may use it, and that every runtime and toolchain implementing that WASI version must support it either way.

| WASI Version | Component Model Features Required | Adopted |
| ------------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| 0.2.0 | The default ungated Component Model features | WASI 0.2 vote (predates this process) |
| 0.3.0 | `async` lift and lower, `future`, and `stream` | WASI 0.3 vote (predates this process) |
| 0.3.1 | The `map<K, V>` type | [August 6, 2026](https://github.com/WebAssembly/meetings/blob/main/wasi/2026/WASI-08-06.md) ([#943](https://github.com/WebAssembly/WASI/issues/943)) |
| 0.3.1 | `implements` and `external-id` annotations on plain-named interface imports and exports | [August 6, 2026](https://github.com/WebAssembly/meetings/blob/main/wasi/2026/WASI-08-06.md) ([#942](https://github.com/WebAssembly/WASI/issues/942)) |

The Component Model Explainer marks each of these with a gate symbol.

A feature becomes eligible for adoption once its design is complete, multiple runtimes and toolchains have implemented it, and the resulting feedback has been incorporated. Proposals may experiment with features that have not been adopted, but only in prerelease versions such as `0.3.0-rc-*`, or in proposals that have not yet shipped in a stable WASI release. Stable releases must remain implementable without them, and CI enforces this by validating each changed proposal against the adopted feature set.

See [Component Model features in WASI](https://github.com/WebAssembly/WASI/blob/main/docs/ComponentModelFeatures.md) for the full adoption record, and [Adopting Component Model features](https://github.com/WebAssembly/WASI/blob/main/CONTRIBUTING.md#adopting-component-model-features) for the process.

## Active proposals

### Phase 5 - The Feature is Standardized (WG)
Expand Down
43 changes: 29 additions & 14 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,45 @@ sidebar_position: 4

This roadmap is a living document representing projected timelines for WASI releases. Goals and projections are provisional and subject to revision.

## WASI Releases
## WASI releases

WASI point releases occur every two months, on the first Thursday of that month, on a **release train model**: a regular cadence in which releases are published regardless of the enhancements and fixes that are "ready for the train." Point releases include smaller features and bug fixes, while major features and breaking changes are generally reserved for major versions.
WASI patch releases follow a **release train model**: a regular cadence in which releases are published regardless of the enhancements and fixes that are "ready for the train." Patch releases include smaller features and bug fixes, while major features and breaking changes are generally reserved for major versions.

WASI 0.3 patch releases ship every two months, on the second Tuesday. WASI 0.2.1 through 0.2.12 followed the same two month cadence on the first Tuesday.

WASI 0.3.0 was an exception to the release train, shipping on June 11, 2026 following a WASI Subgroup vote. WASI 1.0 may also be scheduled outside the train. The cadence after 1.0 is undetermined.

### Release schedule

Releases through WASI 0.3.1 have shipped. Later dates are planned and subject to change.

| Release | Date |
| ------- | ---- |
| WASI 0.3.0 | June 11, 2026 (one-off release) |
| WASI 0.3.1 | August 11, 2026 |
| WASI 0.3.2 | October 13, 2026 |
| WASI 0.3.3 | December 8, 2026 |
| WASI 0.3.4 | February 9, 2027 |
| WASI 0.3.5 | April 13, 2027 |
| WASI 0.3.6 | June 8, 2027 |
| WASI 0.3.7 | August 10, 2027 |
| WASI 0.3.8 | October 12, 2027 |
| WASI 0.3.9 | December 14, 2027 |

Releases are cut by a WASI Subgroup co-chair through an automated GitHub Actions workflow. For the full process, see [Release](https://github.com/WebAssembly/WASI/blob/main/docs/Release.md) in the WASI repository.

## WASI 0.3

WASI 0.3.0 was released on June 11, 2026. WASI 0.3 support is available in [Wasmtime 43+](https://github.com/bytecodealliance/wasmtime) and [jco](https://github.com/bytecodealliance/jco).
WASI 0.3.0 was released on June 11, 2026. WASI 0.3 support is available in [Wasmtime](https://wasmtime.dev/) 46 and later, which enables WASI 0.3 by default, and in [jco](https://github.com/bytecodealliance/jco).

WASI 0.3 adds **native async support** to the Component Model and refactors WASI 0.2 interfaces to take advantage of native async primitives: `async func`, `stream<T>`, and `future<T>`. The `wasi:io` package is removed entirely, with its functionality absorbed into the Component Model's Canonical ABI. For a full overview of changes, see [WASI 0.3](releases/wasi-p3.md).

Implementations may continue to support WASI 0.2 alongside 0.3, either by implementing both versions or by virtualizing (polyfilling) 0.2 in terms of 0.3.

Following WASI 0.3.0, a series of incremental and backwards-compatible 0.3.x releases will occur on the release train model. These point releases are expected to include:
Following WASI 0.3.0, incremental and backwards-compatible 0.3.x releases ship on the release train. WASI 0.3.1 adopted the Component Model `map<K, V>` type and the `implements` and `external-id` annotations, which WASI interfaces may use from that release onward.

* **Cancellation** automatically integrated with language idioms
* **Specialization** of `tuple<stream<u8>, future<result<trailers, http-error>>>` existing in 0.3.0
* **Stream optimization** with Canonical ABI built-ins for forwarding/splicing, skipping/writing-zeroes, stream data segment, and lulls
* **Caller-supplied buffers** with more zero-copy in more scenarios
* **Threads**: first cooperative, then preemptive

You can find more information in the [WebAssembly CG presentation from February 2025](https://docs.google.com/presentation/d/1z0WXS5BLFtbVynM9xAyilecYskN1IKe9Dad1nDEmgU8/edit#slide=id.g33067d21cc1_0_5).
Later releases may adopt further Component Model features. Candidates are developed behind [gated features](https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md#gated-features) and reach a WASI release only after a Subgroup vote, as described in [Component Model features](releases/index.md#component-model-features). Current candidates include threading built-ins, stackful async lift, fixed-length lists, the `error-context` type, and canonical interface names.

## Project timeline

The provisional timeline for WASI releases is as follows:

![The WASI timeline projects a WASI 0.3 release in summer 2026](../static/img/wasi-timeline.webp)
![Timeline of WASI releases. WASI 0.2.0 shipped in January 2024, followed by patch releases through 0.2.12. WASI 0.3.0 shipped in June 2026, followed by 0.3.x patch releases every two months through 2027.](../static/img/wasi-timeline.svg)
51 changes: 51 additions & 0 deletions static/img/wasi-timeline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/img/wasi-timeline.webp
Binary file not shown.
Loading