Webmesh - A fully open-source Tailscale alternative
Hey all!I wanted to show off my (not so) new project, Webmesh. It is a WireGuard mesh solution mostly similar to TailScale. It contains almost all of the functionality of TailScale already, such as custom DNS and hole-punching, but with some notable differences.- The control-plane can be distributed across one or more nodes in the mesh. Raft consensus is used to maintain state on nodes that choose to observe or vote in elections. Otherwise regular clients can simply join and partake in the network and receive updates from the controllers.- The network topology is malleable and dictated by the user, not the controllers. Multi-hop through the network is the default and from there you can manually assign direct edges between nodes. Hole-punching is made available via ICE tunnels or libp2p circuit relays.- There is a plugin API for extending the functionality of the network. Currently plugins can offer extensions to storage, authentication, IP address management, or simply being notified about changes to the network.- An application API is provided to run webmesh nodes in a sort of "stand-by" mode. This is used by the CLI and in-progress GUI apps.- Separate networks can be paired together using "bridge" nodes. This requires no fancy NATing or tunneling, just straight IPv6 forwarding.- Nodes are embeddable. Only Go bindings available currently, but more on the horizon. You can write apps that will connect to a mesh network. You can then interact with the network via Go's standard networking mechanisms.- Offline discovery and joining is available using the IPFS Kademlia DHT. More options such as DNS-SRV records to come.Examples and more information about all of the above can be found in the repository and the linked project website within. Excited to hear feedback or ideas on how I can continue to make the solution better.
Webmesh is a WireGuard mesh solution that has received praise for its unique features, particularly the implementation of Raft consensus in the network control plane and the powerful IPv6 forwarding through bridge nodes.