Summary
The package currently exposes the wasi_snapshot_preview1 namespace across all runtimes, but the native/web backends still implement only a minimal command-style + virtual filesystem subset.
This issue is the execution-ordered tracker for closing the remaining Preview1 support gaps. Each checklist item below is backed by a child issue. Behavioral coverage belongs to each capability issue; the verification-phase items are complementary smoke, end-to-end, and documentation work.
Current state:
Official WASI Preview1 surface: 46 functions
Native/web backends: 19 implemented, 27 exported as explicit ENOSYS stubs
Node backend: delegates to node:wasi, so its surface is not the limiting factor for wasd itself
Official references:
Execution Order
Phase 1: Low-Complexity Wins
Phase 2: File Descriptor Model
Phase 3: Path and Directory Semantics
Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2141 Blocked by: Support writable virtual files and non-stdio fd_write in WASI Preview1 #21 , Expand fd_fdstat_get and fd_filestat_get metadata to better match WASI Preview1 #22 , Implement fd_fdstat_set_rights for WASI Preview1 on native and web backends #24
Implement fd_readdir for WASI Preview1 on native and web backends #35 Implement fd_readdir for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1844 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34
Implement path_create_directory for WASI Preview1 on native and web backends #36 Implement path_create_directory for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2016 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34
Implement path_remove_directory for WASI Preview1 on native and web backends #37 Implement path_remove_directory for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2223 Blocked by: Implement path_create_directory for WASI Preview1 on native and web backends #36 , Implement fd_readdir for WASI Preview1 on native and web backends #35
Implement path_unlink_file for WASI Preview1 on native and web backends #38 Implement path_unlink_file for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2308 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 , Support writable virtual files and non-stdio fd_write in WASI Preview1 #21
Implement path_rename for WASI Preview1 on native and web backends #39 Implement path_rename for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2249 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 , Implement path_create_directory for WASI Preview1 on native and web backends #36 , Implement path_unlink_file for WASI Preview1 on native and web backends #38
Implement path_link for WASI Preview1 on native and web backends #40 Implement path_link for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2107 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 , Implement path_unlink_file for WASI Preview1 on native and web backends #38
Implement path_symlink for WASI Preview1 on native and web backends #41 Implement path_symlink for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2280 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 , Implement path_unlink_file for WASI Preview1 on native and web backends #38
Implement path_readlink for WASI Preview1 on native and web backends #42 Implement path_readlink for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2192 Blocked by: Implement path_symlink for WASI Preview1 on native and web backends #41
Implement path_filestat_set_times for WASI Preview1 on native and web backends #43 Implement path_filestat_set_times for WASI Preview1 on native and web backends. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2070 Blocked by: Make WASI Preview1 path_open honor lookupflags, oflags, fdflags, and rights #34 , Implement fd_filestat_set_times for WASI Preview1 on native and web backends #28
Phase 4: Events, Process, and Sockets
Phase 5: Verification and Documentation
Add 46-function WASI Preview1 import-surface coverage tests across native, node, and web #17 Add 46-function WASI Preview1 import-surface coverage tests across native, node, and web. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1282 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/witx/wasi_snapshot_preview1.witx#L8
Add syscall-level regression tests for newly supported WASI Preview1 APIs #51 Add syscall-level regression tests for newly supported WASI Preview1 APIs. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1282 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/witx/wasi_snapshot_preview1.witx#L8
Add end-to-end WASI Preview1 fixtures for file, directory, and polling flows #52 Add end-to-end WASI Preview1 fixtures for file, directory, and polling flows. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1818 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1844 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1987 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2141 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L2334 Blocked by: Support writable virtual files and non-stdio fd_write in WASI Preview1 #21 , Implement fd_readdir for WASI Preview1 on native and web backends #35 , Align poll_oneoff with broader WASI Preview1 semantics on native and web #44
Document a per-runtime WASI Preview1 support matrix #53 Document a per-runtime WASI Preview1 support matrix. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1282 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/witx/wasi_snapshot_preview1.witx#L8 Blocked by: Decide and document proc_raise support policy for WASI Preview1 native and web #45 , Define native/web support policy for WASI Preview1 socket APIs #46
Verify README and compatibility docs against actual WASI Preview1 backend behavior #54 Verify README and compatibility docs against actual WASI Preview1 backend behavior. Refs: https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/docs.md#L1282 , https://github.com/WebAssembly/WASI/blob/wasi-0.1/preview1/witx/wasi_snapshot_preview1.witx#L8 Blocked by: Document a per-runtime WASI Preview1 support matrix #53
Exit Criteria
We should close this issue only when one of these is true:
Native and web backends support the full Preview1 surface with tested behavior.
The remaining exclusions are explicitly documented, and the package/docs stop implying complete Preview1 support.
Summary
The package currently exposes the
wasi_snapshot_preview1namespace across all runtimes, but the native/web backends still implement only a minimal command-style + virtual filesystem subset.This issue is the execution-ordered tracker for closing the remaining Preview1 support gaps. Each checklist item below is backed by a child issue. Behavioral coverage belongs to each capability issue; the verification-phase items are complementary smoke, end-to-end, and documentation work.
Current state:
ENOSYSstubsnode:wasi, so its surface is not the limiting factor for wasd itselfOfficial references:
Execution Order
Phase 1: Low-Complexity Wins
Phase 2: File Descriptor Model
Phase 3: Path and Directory Semantics
Phase 4: Events, Process, and Sockets
Phase 5: Verification and Documentation
Exit Criteria
We should close this issue only when one of these is true: