wavefnd / wavefnd/Wave

Add native Windows process spawning and waiting APIs

Open
#429 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted os support platform-specific feature
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

## Summary

The Windows process provider currently implements only `exit` and `getpid`. POSIX-only operations such as `fork`, `execve`, and `waitpid` return `-ENOSYS`, leaving `std::process` without a usable Windows process model.

## Related issue

- #385

## Scope

Design and implement a Windows-native process surface based on process creation, waiting, exit status retrieval, and handle cleanup. Do not emulate `fork` when Windows has no equivalent; expose portable high-level behavior over a native provider.

## Acceptance criteria

- A Wave program can spawn a child executable with arguments on Windows.
- The parent can wait for the child and obtain its exit status.
- Process and thread handles are closed on success and failure paths.
- Command-line and environment encoding rules are documented in code comments.
- Existing POSIX providers and public compatibility functions continue to compile.
- Windows CI runs a native spawn/wait smoke test.
- The final API has a clear unsupported contract for genuinely POSIX-only operations.

Contributor guide

Open the contributing guide

Research direction

Start by locating the Windows process provider, std::process compatibility functions, existing POSIX providers, and the Windows CI configuration. Review how process creation, waiting, exit status retrieval, and handle cleanup are represented, then verify the acceptance criteria with a native Windows spawn/wait smoke test and compilation checks for POSIX providers.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.