Skip to content

Proposing a framework for Preview3 and WASI 1.0 #515

@sunfishcode

Description

@sunfishcode

To provide a little more background on my roadmap agenda item, I'd like to propose a rough framework for a future Preview3, and beyond that, a WASI 1.0.

Preview2 is rebasing WASI on the wit IDL, which fixes a lot of long-standing open problems that WASI has. However, there is a major feature planned to be included in wit that isn't ready yet: integrated async. Specifically, this is the stream and future types.

For Preview2 we're developing temporary stream APIs that we can use in place of the stream keyword. However, a built in stream type would have many advantages, including idiomatic and efficient source language buildings for async streaming, and composition of async work across components.

So I propose we think of the big theme of Preview3 to be adding APIs that use the stream and future type. We can also add features and incorporate implementation feedback, but async would be the big story.

After that, I expect we'll have enough of a foundation in place that it makes sense for WASI to move out of "preview" mode and start conversations with the Wasm CG about producing a WASI 1.0 standard. Again, we could add new features and incorporate implementation feedback, but here, the big story would just be standardization.

How does this overall framework sound?

[edit: updated the wasi-io.wit.md link, thanks @ricochet for pointing that out!]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions