Hey folks. Normally I’d throw this on a few subs on Reddit - but things are really going downhill over there. I’ve sort of landed on an aspirational project that is the culmination of 4 or 5 different ones I’ve done over the years and I’m ready to start sharing it with the community.
For lack of a better name, I’m calling it “webmesh” at the moment. It aims to be a WireGuard mesh provider akin to projects like TailScale, OpenZiti, etc - but with a controllerless architecture maintained by raft consensus amongst nodes in the mesh. I’m also trying to avoid implementing custom userspace protocols as much as possible and keep the codebase relatively simplistic by relying on existing kernel technologies and tools.
Short term I could see this turning into a type of SaaS on top of the open-source code (happy to talk to anyone interested in joining on such an endeavour), but I also feel like there is a large amount of potential for standardization of some of the concepts to enable better connectivity across devices at the edge. I don’t want this to be Web3 or blockchain or cryptocurrency. But I do think it could become what those things promise (without the built-in financial incentives).
After looking through Lemmy’s architecture a bit more - I started getting some wild ideas in that space too, but I would need to write a Rust SDK first.
The project is split across three repositories for now. An API repository containing protocol buffers for the inter-node API and Raft logs. The “node” itself which is the implementation of the API and where the bulk of the documentation/examples/etc resides. And an operator repository where I am putting together a Kubernetes operator to allow bootstrapping meshes on k8s clusters.
Repos are all here: https://github.com/orgs/webmeshproj/repositories
Excited to hear any feedback people might have. Cheers :)