- 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>
2.1 KiB
2.1 KiB
Windows Support — Implementation Plan
March–April 2026
Phase 1: Run on Windows without system integration — DONE (v0.3.0)
- Cross-platform
config_dir()anddata_dir() src/system_dns.rs— Windows DNS discovery viaipconfig /all- Stubs for install/uninstall/service on unsupported OS
- Multicast LAN discovery (
SO_REUSEPORTskipped on Windows) - All deps compile on windows-msvc
- CI:
check-windowsjob (build + clippy) - Cross-platform LAN discovery tested: macOS ↔ Windows
Phase 2: DNS configuration — DONE (PR #28)
numa install— set DNS to 127.0.0.1 vianetshfor all active interfacesnuma uninstall— restore DNS from backup (DHCP or static with secondaries)ipconfig /allparser — per-interface adapter name, DHCP status, DNS servers- Localization — German adapter/DHCP/DNS labels handled
- Disconnected adapters — skipped
- Backup —
%PROGRAMDATA%\numa\original-dns.json - Dnscache — disable via registry on install, re-enable on uninstall (reboot required)
- Auto-start — registry Run key (
HKLM\...\Run\Numa) on install, removed on uninstall - UDP ConnectionReset — Windows ICMP error 10054 caught and ignored
- IP validation — added to
discover_windows() - CI:
cargo test+ binary artifact upload on Windows README.md— add Windows install instructions
Phase 3: Full service integration (future)
Windows Service
- Use
windows-servicecrate 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.pemto trust Numa CA system-wide- Reverse:
certutil.exe -delstore Root "Numa Local CA" - Needs admin elevation
DHCP DNS detection
- Current
detect_dhcp_dns()returnsNoneon Windows - Could parse
ipconfig /allfor "DHCP Server" + "DNS Servers" lines - Or use WinAPI
GetNetworkParams()