Roadmap
The current version focuses on "simple, robust, good enough". Planned capabilities, in priority order.
Near term
- [ ] Concurrent multi-connection: carry multiple local TCP connections over one tunnel simultaneously (currently sequential)
- [ ] WebSocket signaling: instant guest-join notification to the host instead of polling (lower direct-link latency)
- [ ] UPnP automatic port mapping: an additional option before punching, when the router supports it
Mid term
- [ ] x25519 key exchange: automatic per-session key agreement (replacing manual
--key) - [ ] Encrypted relay: confidentiality on the relay path too (currently
--keyapplies to P2P direct only) - [ ] Multi-node rooms (>2 people): a central node broadcasts member addresses for mesh P2P
- [ ] Adaptive transport parameters: auto-tune window, retransmit interval, and MTU from loss/latency
Long term
- [ ] Platform polish: Windows/macOS installers, autostart, tray icon
- [ ] Relay cluster: multi-server relay pool with nearest routing
- [ ] Compatibility layer: optional integration with existing protocol ecosystems
Implemented (v0.1)
- Room-based signaling (REST + UDP probe + TTL expiry)
- UDP hole punching (PUNCH/ACK simultaneous handshake + port spread)
- FRS1 reliable stream (sliding window + retransmit + keepalive + FIN handshake)
- ChaCha20-Poly1305 end-to-end encryption (
--key) - Sequential multi-connection reuse (
--max-conns) - TCP relay fallback (pairing + bidirectional copy + late-direct re-check)
- Auto-reconnect with exponential backoff (refreshes public address + room)
- Same-LAN auto-direct (advertises LAN addresses, dual-path punching)
- Mesh mode (
lanseries: virtual-NIC whole-machine mesh, 10.66.0.0/24; guest can reach the host's LAN) - Per-device unique ID (UUID) + stable derived virtual IP
- Windows compatibility (ICMP poisoning handling, TUN/WinTun)
- End-to-end tests and real-NAT verification
Contributing
PRs welcome. See Development & Testing and the Protocol Spec.