Stream: git-wasmtime

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


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

alexcrichton opened PR #13109 from alexcrichton:remove-system-interface to bytecodealliance:main:

This commit removes the system-interface dependency from wasi-common, 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 17:39):

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

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

alexcrichton requested dicej for a review on PR #13109.

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

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

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

alexcrichton updated PR #13109.


Last updated: May 03 2026 at 22:13 UTC