How evsio0n/nylon works
Nylon is a WireGuard-based resilient overlay VPN that combines dynamic Babel-like routing with user-space packet forwarding. The main workflow is to start a node with its configuration, establish encrypted peer links, exchange in-band route updates, select routes around outages, and forward traffic through the overlay. The tree also shows configuration distribution, passive WireGuard-client support, platform and mobile interfaces, and a web UI. README claims guide these capability branches; source excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: control_plane.go Control plane · entrypoint.go Runtime entrypoint · router.go Router runtime · device.go WireGuard device
Components 21
User interfaces
- CLI commands
cmd/root.go - Mobile API
mobile/api.go - Mobile routes
mobile/routes.go - Web UI
core/ui/app.js
Node control
- Runtime entrypoint
core/entrypoint.go - Node configuration
state/config.go - Runtime state
state/state.go - Control plane
core/control_plane.go - Config distribution
core/nylon_distribution.go - Passive clients
core/nylon_passive.go - System networking
core/sys.go
Overlay routing
- Router runtime
core/router.go - Route selection
core/router_algo.go - Routing state
state/routing.go - Endpoint management
core/nylon_endpoints.go
Secure transport
- Overlay runtime
core/nylon.go - WireGuard device
polyamide/device/device.go - TUN interface
polyamide/tun/tun.go
Other components
- Operator
- Overlay peers
- Physical network
Connections 23
- Operator → CLI commands: runs
- CLI commands → Runtime entrypoint: starts
- Runtime entrypoint → Node configuration: loads
- Runtime entrypoint → Runtime state: initializes
- Runtime entrypoint → Control plane: starts
- Control plane → Config distribution: coordinates
- Control plane → Passive clients: coordinates
- Control plane → Router runtime: starts
- Control plane → Overlay runtime: starts
- Control plane → System networking: configures
- Config distribution → Physical network: fetches configuration
- Passive clients → WireGuard device: supports clients
- Router runtime → Route selection: handles routing
- Route selection → Routing state: updates
- Router runtime → Overlay runtime: sends route messages
- Overlay runtime → WireGuard device: transports packets
- WireGuard device → TUN interface: reads and writes
- WireGuard device → Physical network: sends encrypted traffic
- Physical network → Overlay peers: connects
- Router runtime → Endpoint management: uses endpoints
- Mobile API → Runtime state: dispatches state work
- Mobile routes → Runtime state: reads routes
- Web UI → Control plane: requests status