wavefnd / wavefnd/Wave

Implement Windows console raw-mode support

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

Description

## Summary

`std::sys::windows::tty` currently exposes the portable terminal surface but every mutation function returns `-ENOSYS`. Interactive Wave applications therefore cannot enable raw input or restore the console state on Windows.

## Related issue

- #385

## Scope

Provide a Windows console-mode implementation using native console APIs. Keep Unix termios details inside Unix providers and translate only the portable behavior required by the public TTY layer.

## Acceptance criteria

- Console state can be queried, saved, switched to raw/nonblocking-compatible input, and restored.
- Redirection to a pipe or regular file is detected and handled without corrupting console state.
- Restoration is safe when activation failed partway through.
- Native handles are not leaked.
- Windows-native tests or a deterministic smoke harness cover enable/restore behavior.
- Public comments explain which Unix flags have no Windows equivalent.

Contributor guide

Open the contributing guide

Research direction

Start by inspecting std::sys::windows::tty and the portable public TTY layer, then compare the Unix providers to identify the behavior that must be preserved without copying termios details. Use a Windows-native test or deterministic smoke harness to verify query, enable, restore, redirection handling, partial-failure safety, and handle cleanup; document unsupported Unix flags.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.