pchickey edited PR #13109.
pchickey edited PR #13109:
This commit removes the
system-interfacedependency fromwasmtime-wasi, reimplementing necessary functionality within the crate itself as appropriate. The goal of this commit is to trim our dependency tree. Thesystem-interfacecrate has not received an update in over a year and continues to pull in an olderrustixdependency for example. Additionally I've personally found it confusing and surprising in the past to trace through all the layers of abstractions fromwasmtime-wasito the OS, and I'd like to start slimming this down to be more local within Wasmtime rather than depending on a tree of crates.The
system-interfacecrate is a relatively thin wrapper aroundcap-std-style crates providing a platform-agnostic API. This sometimes fits what WASI wants, and sometimes doesn't. For example all reads/writes to files within WASI currently require that Wasmtime maintains a file cursor itself meaning that the underlying OS file cursor doesn't actually matter. Reads and writes through thesystem-interfaceabstraction, however, keep the cursor up-to-date to have the same semantics across Unix and Windows which differ in the behavior of the underlying syscalls. This is unnecessarily adds overhead to Wasmtime's implementation of these APIs where they're otherwise not required.Effectively
system-interfaceis not receiving much maintenance (old dependency onrustixhas persisted for ~1 year), its an extra layer of abstraction to debug when issues arise, and its abstractions are not always the best fit for WASI's semantics meaning that it can add performance overhead. The replacement of inlining implementations within Wasmtime is not too too costly and, personally, I view as worth it.I'll note that this doesn't delete the
system-interfacecrate entirely. That would require removing it fromwasi-commonas well, which is the subject of #13108.<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
pchickey submitted PR review.
alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue
github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue
alexcrichton updated PR #13109.
alexcrichton updated PR #13109.
alexcrichton requested wasmtime-core-reviewers for a review on PR #13109.
alexcrichton updated PR #13109.
github-actions[bot] added the label wasi on PR #13109.
alexcrichton updated PR #13109.
alexcrichton updated PR #13109.
alexcrichton has enabled auto merge for PR #13109.
alexcrichton updated PR #13109.
alexcrichton updated PR #13109.
alexcrichton has disabled auto merge for PR #13109.
alexcrichton has enabled auto merge for PR #13109.
alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue
github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue
alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue
github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue
alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue
alexcrichton merged PR #13109.
alexcrichton removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue
Last updated: May 03 2026 at 22:13 UTC