Stream: git-wasmtime

Topic: wasmtime / PR #13109 Remove `system-interface` from `wasm...


view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 18:28):

pchickey edited PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 18:29):

pchickey edited PR #13109:

This commit removes the system-interface dependency from wasmtime-wasi, reimplementing necessary functionality within the crate itself as appropriate. The goal of this commit is to trim our dependency tree. The system-interface crate has not received an update in over a year and continues to pull in an older rustix dependency for example. Additionally I've personally found it confusing and surprising in the past to trace through all the layers of abstractions from wasmtime-wasi to 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-interface crate is a relatively thin wrapper around cap-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 the system-interface abstraction, 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-interface is not receiving much maintenance (old dependency on rustix has 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-interface crate entirely. That would require removing it from wasi-common as well, which is the subject of #13108.

<!--
Please make sure you include the following information:

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 18:31):

pchickey submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 19:05):

alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 19:24):

github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 19:29):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 20:00):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 20:11):

alexcrichton requested wasmtime-core-reviewers for a review on PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 20:11):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 15 2026 at 22:00):

github-actions[bot] added the label wasi on PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 01:23):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 01:23):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 01:23):

alexcrichton has enabled auto merge for PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 14:25):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 19:55):

alexcrichton updated PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 20:22):

alexcrichton has disabled auto merge for PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 20:22):

alexcrichton has enabled auto merge for PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 20:29):

alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 20:55):

github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 21:43):

alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 22:06):

github-merge-queue[bot] removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 22:52):

alexcrichton added PR #13109 Remove system-interface from wasmtime-wasi to the merge queue

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 23:25):

alexcrichton merged PR #13109.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 16 2026 at 23:25):

alexcrichton removed PR #13109 Remove system-interface from wasmtime-wasi from the merge queue


Last updated: May 03 2026 at 22:13 UTC