42 lines
948 B
Markdown
42 lines
948 B
Markdown
# Future Desktop Client Migration Plan
|
|
|
|
## Shared Core
|
|
|
|
The Rust crates are already structured so desktop clients can reuse:
|
|
|
|
- VSHP frame parsing and encoding.
|
|
- Peer/session models.
|
|
- NAT, MTU, DNS, and flow-control logic where applicable.
|
|
- Transport abstractions.
|
|
|
|
## Desktop-Specific Layers
|
|
|
|
Windows:
|
|
|
|
- Wintun adapter.
|
|
- Windows service.
|
|
- MSI/MSIX installer.
|
|
- Credential Manager key storage.
|
|
|
|
Linux:
|
|
|
|
- TUN device.
|
|
- systemd user/system service.
|
|
- NetworkManager integration where available.
|
|
- Secret Service key storage.
|
|
|
|
macOS:
|
|
|
|
- utun interface.
|
|
- launchd service.
|
|
- Keychain key storage.
|
|
- Notarized app bundle.
|
|
|
|
## Product Migration Steps
|
|
|
|
1. Keep `clients/desktop` as the CLI bring-up tool.
|
|
2. Add OS-specific virtual NIC crates under `clients/desktop/src/platform`.
|
|
3. Add installers once USB IPv4 forwarding is stable.
|
|
4. Add tray UI after service lifecycle is reliable.
|
|
5. Split GUI from service so crashes do not drop the tunnel.
|