How zibo-chen/subnetdesk works
SubnetDesk is a LAN/VPN-first remote desktop: a controller discovers a reachable peer or enters its address, verifies and authenticates it, then uses a direct session for remote-control capabilities. README documents mDNS discovery, configurable TCP connections, credentials, fingerprint trust, CIDR restrictions, recent devices/favorites, and remote control, clipboard, audio, and file transfer. The tree and excerpts support the broad runtime layers shown; unsampled details are represented only where documented, so some internal wiring is intentionally omitted.
Main entry points: server.rs Session server · ui.rs Desktop UI · client.rs Session client · lan_protocol.rs LAN protocol
Components 18
Application
- Desktop UI
src/ui.rs - LAN settings
src/ui/remote.rs - Recent and favorites
src/ui/remote.rs
LAN connectivity
- mDNS discovery
src/lan_mdns.rs - Device identity
src/lan_identity.rs - LAN protocol
src/lan_protocol.rs - LAN listener
src/lan_server.rs
Remote session
- Session client
src/client.rs - Session server
src/server.rs - Access checks
src/server/connection.rs - File transfer
src/client/file_trait.rs
Platform access
- Screen capture
src/server/video_service.rs - Remote input
src/server/input_service.rs - Clipboard transfer
src/server/clipboard_service.rs - Audio service
src/server/audio_service.rs - Display capture
libs/scrap/src/lib.rs
Other components
- Controller
- Controlled device
Connections 18
- Controller → Desktop UI: operates
- Controlled device → LAN settings: configures
- Desktop UI → LAN settings: configures
- Desktop UI → mDNS discovery: finds peers
- mDNS discovery → LAN protocol: advertises
- Desktop UI → Recent and favorites: selects peer
- Desktop UI → Session client: starts session
- Session client → LAN protocol: connects directly
- LAN protocol → LAN listener: accepts connection
- LAN listener → Session server: dispatches session
- Session server → Access checks: checks access
- Access checks → Device identity: verifies trust
- Session server → Screen capture: serves video
- Screen capture → Display capture: captures display
- Session server → Remote input: dispatches input
- Session server → Clipboard transfer: transfers clipboard
- Session client → File transfer: transfers files
- Session server → Audio service: serves audio