-
Notifications
You must be signed in to change notification settings - Fork 0
Project Status
English | 繁體中文
Alpha — actively building. The desktop app runs end-to-end (Rust engine boots, frosted-glass shell renders, live telemetry streams to the Diagnostics view). An Expert "real adapter" mode (Windows/Wintun) creates a virtual interface and captures live packets. Two peers can exchange signaling blobs and establish a direct, authenticated encrypted link by hole-punching through their NATs (C4); real IP traffic tunnels between them over that link through the virtual adapter (C5), with live RTT and throughput. Forward Error Correction (Reed-Solomon) rebuilds lost packets without retransmission — any r losses per group (D.1 · D.2) — and a split-tunnel policy controls which LAN traffic — in-subnet unicast, broadcast, and multicast — the tunnel carries (E.1), with broadcast/multicast forwarding and FEC redundancy user-configurable from Settings (B.3). The app classifies the virtual adapter's network as Private and scopes a firewall allow-rule to it automatically (E.2), and Settings can steer extra address/prefix networks into the tunnel via New-NetRoute (E.2) — both symmetric (each side must opt its own inbound in for delivery, not just the sender's outbound). Full site-to-site LAN sharing (a peer's whole real LAN reachable without either side pre-declaring it) remains deliberately out of scope, for the same reason relay/TURN is. Verification note: the whole path — handshake, crypto, data plane, FEC and split-tunnel policy — is covered end to end by an automated harness (two live pipelines over loopback with mock adapters); real NAT traversal has not yet been verified on two physical machines and is the material open risk.
Real adapter (Expert, Windows): creating the Wintun virtual interface requires Administrator privileges. When toggled on without elevation, the engine reports a Needs Admin state and offers a one-click relaunch. The signed wintun.dll is bundled from wintun.net (see src-tauri/resources/wintun/NOTICE.txt).
| Area | State |
|---|---|
| Repository scaffold & docs | ✅ Done |
| Tauri 2.x app initialization | ✅ Done |
| Application Shell — 60px sidebar, breadcrumb, golden-ratio layout, 6 themes, frosted-glass settings overlay | ✅ Done |
Persistent UI state — theme, active route & settings restored across restarts (zustand/persist) |
✅ Done |
Engine telemetry spine — simulated data path + TelemetrySink IPC bridge (live stats & packet log) |
✅ Done |
| Virtual adapter (TUN/TAP) — Wintun integration, real packet capture, elevation handling | ✅ Done |
Virtual adapter — Linux (/dev/net/tun) and macOS (utun) backends |
🚧 Implemented, unverified on real hardware — see PLATFORM-SUPPORT.md |
| Transport + STUN — shared UDP socket, reflexive discovery, live RTT/jitter/loss (C1) | ✅ Done |
| Crypto & identity — X25519 identity, Noise IK handshake, AEAD session + anti-replay (C2) | ✅ Done |
| Manual signaling — paste-robust Offer/Answer blobs (pubkey + candidates, CRC32) (C3) | ✅ Done |
| Peer link — NAT hole-punch-as-handshake (fan-out + single-winner nomination), encrypted keepalive RTT (C4) | ✅ Done |
| Data-plane join — virtual adapter ↔ encrypted session, IP packets tunnelled peer-to-peer (C5) | ✅ Done |
Forward Error Correction — Reed-Solomon over the data plane, recovers any r losses per group without retransmit (D.1 · D.2) |
✅ Done |
| Split tunneling — data-plane policy gating unicast/broadcast/multicast into the tunnel (E.1) | ✅ Done |
| Full-path integration harness — two live pipelines over loopback with mock adapters (F.0) | ✅ Done |
| Frontend test foundation — vitest + testing-library, pure logic and store coverage (B.1) | ✅ Done |
| App-shell routing tests — Sidebar/Breadcrumb/AppShell on a real router, mutation-verified | ✅ Done |
| Network page — peer-connection management moved off Diagnostics, first component tests (B.2) | ✅ Done |
| Connection settings — split-tunnel broadcast/multicast + FEC redundancy wired to Settings UI (B.3) | ✅ Done |
| Live split-tunnel toggles — broadcast/multicast changes apply to an already-connected link, no reconnect (B.4) | ✅ Done |
| Multi-language (i18n) — English, Traditional Chinese, Simplified Chinese, react-i18next, live switching, persisted | ✅ Done |
| Windows network integration — adapter set to Private, scoped firewall allow-rule, best-effort (E.2) | ✅ Done |
OS route management — extra address/prefix networks steered into the tunnel via New-NetRoute, symmetric split-tunnel policy widening (E.2) |
✅ Done |
| Site-to-site LAN sharing (peer-advertised routes + remote IP forwarding) | ⏳ Deferred — unverifiable without 3 physical hosts; see CHANGELOG |
| Diagnostics — live telemetry readout ✅ · FEC/policy counters ✅ · two-node topology view ✅ · spectrum chart ✅ | ✅ Done |
| Settings — layered Basic/Expert access (Connection section gated, display-only) | ✅ Done |
| Settings — JSON profile import/export (connection settings only) | ✅ Done |
| Dedicated Minecraft page — settings summary + one-click preset (manual, not process detection) | ✅ Done |
| Networked signaling server — WebSocket host, network name/password gate, live member roster (G.1) | ✅ Done |
| Networked signaling client — join a network, track roster + live join/leave events (G.2) | ✅ Done |
| Offer/answer relay over the signaling connection — transport only (G.3) | ✅ Done |
Multi-peer ConnectionManager — independent link state per peer, mesh-ready (G.3b) |
✅ Done |
| Mesh auto-connect orchestration — roster + relay → automatic offer/answer, no manual paste (G.3c) | ✅ Done |
| Virtual-network UI — create/join network, live member list, integrated into the Network page (G.4) | ✅ Done |
Game-tagged networks — Minecraft quick-create panel, generic gameTag metadata shown wherever a network is viewed |
✅ Done |
| Network page's virtual network panel repositioned as pure management — hint + collapsed general-purpose forms | ✅ Done |
| Elevation helper — IPC protocol + message framing (E.3 step 1) | ✅ Done |
Elevation helper — request/response dispatch cycle, generic transport, real tun::windows wiring for 4 of 5 operations (E.3 step 2) |
✅ Done |
Elevation helper — real named-pipe transport (owner-only ACL), helper.exe binary, elevated launch (E.3 step 3) |
✅ Done |
Elevation helper — create_adapter + attach_existing (helper owns the adapter, main process opens it by name) (E.3 step 4) |
✅ Done |
Elevation helper — actually replacing whole-app relaunch; blocked on verifying unelevated WintunOpenAdapter on a real machine (E.3 step 5) |
⏳ Blocked |
| CI release pipeline — Windows, Linux, and macOS installers built and published to a draft GitHub Release on tag push, with auto-generated release notes (Linux/macOS are UI-only previews — see PLATFORM-SUPPORT.md) | ✅ Done |
For version-by-version detail, see CHANGELOG.md. For the intended (not-yet-built) feature set, see Features.
Player Club Private VPN
English
繁體中文