Remove wasi-threads and wasi-common from Wasmtime.#47
Open
alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
Open
Remove wasi-threads and wasi-common from Wasmtime.#47alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
wasi-common from Wasmtime.#47alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
Conversation
Delete the implementation of the [wasi-threads] proposal from Wasmtime, namely the `wasmtime-wasi-threads` and `wasi-common` crates, along with the `-Sthreads` CLI flag. Uses cases that need any threading at all for portability will be served in the near term with WASIp3 cooperative threads, and long-term support for true multithreading will be best served through the [shared-everything-threads] proposal. [wasi-threads]: https://github.com/webassembly/wasi-threads [shared-everything-threads]: https://github.com/webassembly/shared-everything-threads
bjorn3
reviewed
Apr 24, 2026
| crate has a fundamentally different design than the `wasi-common` crate, | ||
| primarily motivated with integration with the component model. This includes | ||
| features such as `async` which WASIp1 does not support. The `wasi-common` crate | ||
| is only used by the `wasmtime` CLI when the `-Stherads` flag is passed, which |
tschneidereit
approved these changes
Apr 24, 2026
Member
tschneidereit
left a comment
There was a problem hiding this comment.
This is a great writeup of the situation and what we discussed in the Wasmtime call—thank you!
Member
Author
|
This technically meets the criteria for FCP with two approvals, but given the nature of this change and amount of time this PR has been open I don't plan on starting FCP for another week or two to ensure folks have a chance to take a look at this. |
|
|
||
| * The [wasi-threads] proposal is fundamentally incompatible with the component | ||
| model due to component model intrinsics not having semantics across threads | ||
| (e.g. they all specifically assume single-threaded semantics and execution).c |
Contributor
There was a problem hiding this comment.
Suggested change
| (e.g. they all specifically assume single-threaded semantics and execution).c | |
| (e.g. they all specifically assume single-threaded semantics and execution). |
pchickey
approved these changes
Apr 24, 2026
bnjbvr
reviewed
Apr 25, 2026
| such. | ||
|
|
||
| Current spec-level effort for multithreading in WebAssembly is primarily focused | ||
| on the [shared-everything-proposal]. The instance-per-thread model on the web |
Member
There was a problem hiding this comment.
Suggested change
| on the [shared-everything-proposal]. The instance-per-thread model on the web | |
| on the [shared-everything-threads] proposal. The instance-per-thread model on the web |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Delete the implementation of the wasi-threads proposal from Wasmtime, namely the
wasmtime-wasi-threadsandwasi-commoncrates, along with the-SthreadsCLI flag. Uses cases that need any threading at all for portability will be served in the near term with WASIp3 cooperative threads, and long-term support for true multithreading will be best served through the shared-everything-threads proposal.