Files
numa/docs/implementation/windows-support-plan.md
Razvan Dimescu 787733cbea docs: update README, Windows plan, and launch drafts for Windows support
- README: platform-specific Quick Start, install/uninstall table
- Windows plan: Phase 2 complete, Phase 3 scoped
- Launch drafts: updated "Does it support Windows?" response

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 17:57:21 +03:00

50 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Windows Support — Implementation Plan
*MarchApril 2026*
## Phase 1: Run on Windows without system integration — DONE (v0.3.0)
- [x] Cross-platform `config_dir()` and `data_dir()`
- [x] `src/system_dns.rs` — Windows DNS discovery via `ipconfig /all`
- [x] Stubs for install/uninstall/service on unsupported OS
- [x] Multicast LAN discovery (`SO_REUSEPORT` skipped on Windows)
- [x] All deps compile on windows-msvc
- [x] CI: `check-windows` job (build + clippy)
- [x] Cross-platform LAN discovery tested: macOS ↔ Windows
## Phase 2: DNS configuration — DONE (PR #28)
- [x] `numa install` — set DNS to 127.0.0.1 via `netsh` for all active interfaces
- [x] `numa uninstall` — restore DNS from backup (DHCP or static with secondaries)
- [x] `ipconfig /all` parser — per-interface adapter name, DHCP status, DNS servers
- [x] Localization — German adapter/DHCP/DNS labels handled
- [x] Disconnected adapters — skipped
- [x] Backup — `%PROGRAMDATA%\numa\original-dns.json`
- [x] Dnscache — disable via registry on install, re-enable on uninstall (reboot required)
- [x] Auto-start — registry Run key (`HKLM\...\Run\Numa`) on install, removed on uninstall
- [x] UDP ConnectionReset — Windows ICMP error 10054 caught and ignored
- [x] IP validation — added to `discover_windows()`
- [x] CI: `cargo test` + binary artifact upload on Windows
- [ ] `README.md` — add Windows install instructions
## Phase 3: Full service integration (future)
### Windows Service
- Use `windows-service` crate to register Numa as a Windows Service
- `sc.exe create numa binPath=...` as alternative
- Auto-start on boot (SYSTEM context, no login required), auto-restart on crash
- Replace registry Run key with proper SCM integration
### CA trust
- `certutil.exe -addstore Root ca.pem` to trust Numa CA system-wide
- Reverse: `certutil.exe -delstore Root "Numa Local CA"`
- Needs admin elevation
### DHCP DNS detection
- Current `detect_dhcp_dns()` returns `None` on Windows
- Could parse `ipconfig /all` for "DHCP Server" + "DNS Servers" lines
- Or use WinAPI `GetNetworkParams()`