Robbepop opened issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtimeoptional dependency fromwasi-common/syncsince it was unused mostly.This had the effect that users could use
wasi-commonwith itssyncfeature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-commonv23.0.1 (including this improvement) into Wasmi'swasmi_wasicrate and to my surprise Cargo pulled Wasmtime via thewasi-commondependency.
When I removed thesyncfeature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common'sCargo.tomlfile does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
Robbepop edited issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtimeoptional dependency fromwasi-common/syncsince it was unused mostly.This had the effect that users could use
wasi-commonwith itssyncfeature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-commonv23.0.1 (including this improvement) into Wasmi'swasmi_wasicrate and to my surprise Cargo pulled Wasmtime via thewasi-commondependency.
When I removed thesyncfeature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common'sCargo.tomlfile does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"]}And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false}
Robbepop edited issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtimeoptional dependency fromwasi-common/syncsince it was unused mostly.This had the effect that users could use
wasi-commonwith itssyncfeature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-commonv23.0.1 (including this improvement) into Wasmi'swasmi_wasicrate and to my surprise Cargo pulled Wasmtime via thewasi-commondependency.
When I removed thesyncfeature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common'sCargo.tomlfile does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"] }And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false }But why?
Robbepop commented on issue #9009:
Here is a Wasmi PR with which you can reproduce the issue: https://github.com/wasmi-labs/wasmi/pull/1140
Robbepop commented on issue #9009:
Building
wasmi_wasiwithcargo build -p wasmi_wasi --no-default-features --verboseReveals that somehow the
wasmtimefeature flag is set:

bjorn3 commented on issue #9009:
According to https://docs.rs/crate/wasi-common/23.0.1/source/Cargo.toml.orig, #8900 is not yet included in wasi-common 23.0.x. Each release branches on the 5th of the month and gets released on the 20th: https://github.com/bytecodealliance/wasmtime/blob/5d0d61602f2dfa5478ef120a86a9009d74ac56bb/.github/workflows/release-process.yml#L23-L24 #8900 got merged on the 8th of this month, which is 3 days after the 23.0 release got branched.
Robbepop commented on issue #9009:
According to https://docs.rs/crate/wasi-common/23.0.1/source/Cargo.toml.orig, #8900 is not yet included in wasi-common 23.0.x. Each release branches on the 5th of the month and gets released on the 20th:
https://github.com/bytecodealliance/wasmtime/blob/5d0d61602f2dfa5478ef120a86a9009d74ac56bb/.github/workflows/release-process.yml#L23-L24
#8900 got merged on the 8th of this month, which is 3 days after the 23.0 release got branched.Ah okay, that explains why I just successfully built
wasi-commonwithout the Wasmtime dependency when using the currentmainbranch of Wasmtime. :face_palm: Good to know.So this means some more waiting before I can merge the Wasmi PR. Thanks for letting me know!
This issue can be closed then.
alexcrichton closed issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtimeoptional dependency fromwasi-common/syncsince it was unused mostly.This had the effect that users could use
wasi-commonwith itssyncfeature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-commonv23.0.1 (including this improvement) into Wasmi'swasmi_wasicrate and to my surprise Cargo pulled Wasmtime via thewasi-commondependency.
When I removed thesyncfeature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common'sCargo.tomlfile does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"] }And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false }But why?
Last updated: Dec 06 2025 at 06:05 UTC