Nylon: How I replaced Tailscale with my own mesh VPN
I built nylon because I wanted one unified VPN that connects across all my cloud servers, mobile devices and workstations, whether they are on the same LAN, or across the internet.
I also had latency-sensitive "work" ahem (game streaming). So if I were on the same physical network as my gaming pc, I want my VPN to route via the lowest latency LAN path, only falling back to other nodes when needed.
Note: I have considered Tailscale and Nebula. These work most of the time, but do not give me control over how data is routed. They generally establish direct links (or at most, 1-hop via a relay), and do not take the state of the underlying network into account.
With nylon, I can choose to add links with more premium networks like CN2 GIA or Akamai's (via two Linodes in diff regions). Nylon would take these links into account, and dynamically pick the best routing using Babel (RFC 8966).
Docs for getting started: https://nylon.jq.ax
Github Repo: https://github.com/encodeous/nylon
Would love to hear thoughts & feedback! Thanks :)