Skip to content

Add Async, Streams, and Futures concepts page and Migrating from WASI P2 to WASI P3 guide#352

Open
ericgregory wants to merge 4 commits into
bytecodealliance:mainfrom
ericgregory:p3-migrating-to-p3
Open

Add Async, Streams, and Futures concepts page and Migrating from WASI P2 to WASI P3 guide#352
ericgregory wants to merge 4 commits into
bytecodealliance:mainfrom
ericgregory:p3-migrating-to-p3

Conversation

@ericgregory

@ericgregory ericgregory commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Adds two new pages under Understanding: design/async.md introduces the Canonical ABI primitives (async func, stream<T>, future<T>) added for WASI P3, and design/migrating-to-p3.md covers the P2-to-P3 concept mapping for component authors with before/after WIT examples, per-interface notes, and tooling requirements.

Add a new design/async.md introducing the Canonical ABI primitives
(`async func`, `stream<T>`, `future<T>`) that the Component Model added
for the WASI P3 release. The page covers the sandwich problem (why
native async matters for composition), each primitive with a worked WIT
example, the stream-plus-future and write-direction-flip patterns, and a
tooling-support pointer.

Hook the page into Component Model Concepts as a new subsection after
Packages, and add the SUMMARY.md entry under that umbrella.

Signed-off-by: Eric Gregory <eric@cosmonic.com>
Add a new design/migrating-to-p3.md covering the conceptual P2 -> P3
mapping for component authors: a "Do you need to migrate?" framing, the
wasi:io-to-Canonical-ABI concept mapping table, three before/after WIT
patterns (stream-plus-future, write-direction flip, two-step calls
collapsed), short per-interface notes for wasi:io/http/sockets/
filesystem/cli/clocks/random, a tooling requirements table, and a
version-pinning callout for the current RC-to-0.3.0 transition. Hook
the page into the Understanding section after WIT Reference.

Signed-off-by: Eric Gregory <eric@cosmonic.com>
@ericgregory ericgregory marked this pull request as draft June 12, 2026 18:36
Refine language for clarity and consistency in the migration guide.
@ericgregory ericgregory changed the title Add Migrating from WASI P2 to WASI P3 guide Add Async, Streams, and Futures concepts page and Migrating from WASI P2 to WASI P3 guide Jun 12, 2026
@ericgregory ericgregory marked this pull request as ready for review June 12, 2026 18:49
Apply content-ownership guidance by reframing design/async.md to
describe the Component Model primitives in P3 terms throughout, rather
than as a P2-to-P3 contrast that overlaps with wasi.dev's WASI P3 page.

- Drop the A→B→Host diagram and surrounding A/B/Host references.
- Drop P2 comparisons from the primitive descriptions and from the
  write-pattern code example.
- Rename 'Common patterns' → 'How the primitives work in WASI P3'.
- Replace 'Tooling support' (which duplicated wasmtime.md) with a
  brief 'Where to go next' pointer block.

In migrating-to-p3.md:

- Replace 'Interface notes' (40 lines of per-package detail) with
  'Interface highlights' (3 load-bearing changes + link to wasi.dev).
- Rewrite the WIT pattern openings with phrasing distinct from both
  the reframed async.md and wasi.dev/wasi-p3.
- Fix a broken intra-document anchor and a wasi:http resource count
  inconsistency (eight vs nine).

Signed-off-by: Eric Gregory <eric@cosmonic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant