yggdrasil-go VS mesh-networking

Compare yggdrasil-go vs mesh-networking and see what are their differences.

mesh-networking

:globe_with_meridians: LEGO blocks for networking, a Python library to help create and test flexible network topologies across real and simulated physical links. (by pirate)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
yggdrasil-go mesh-networking
23 1
3,331 350
2.0% -
8.5 0.0
about 1 month ago almost 5 years ago
Go JavaScript
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

yggdrasil-go

Posts with mentions or reviews of yggdrasil-go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-27.
  • Tinc, a GPLv2 mesh routing VPN
    4 projects | news.ycombinator.com | 27 Jun 2023
    > The next version will make it much simpler to deploy isolated networks by using TLS roots to prevent accidental peerings.

    Is that PR #1038 [1]? Any info on how to use that feature and whether it works over multicast as well?

    I noticed this PR uses SHA-1 for matching fingerprints. SHA-1 has been broken for 13 years now. Is it possible to use something more secure?

    > It's also worth noting that Yggdrasil doesn't have the equivalent of "peer exchange" — only directly connected peers would ever find out your public IP address. Yggdrasil will not form new peerings automatically, with the single exception being multicast-discovered nodes on the same LAN.

    Right, my worry is that by having a server with a public IPv4 address and Yggdrasil running on an open port (so that my other nodes can connect to it) will allow someone to connect to it (either on purpose or accidentally) and cause my traffic to route over their node(s) and/or the public mesh.

    Thanks!

    [1] https://github.com/yggdrasil-network/yggdrasil-go/pull/1038

  • Yggdrasil
    1 project | /r/DonOperInfo | 23 Dec 2022
  • Release Version 0.4.7 · yggdrasil-network/yggdrasil-go · GitHub
    1 project | /r/DonOperInfo | 18 Dec 2022
    1 project | /r/u_Accounter_of_Hanover | 18 Dec 2022
  • Tailscale/golink: A private shortlink service for tailnets
    10 projects | news.ycombinator.com | 13 Dec 2022
    From a purely networking perspective, there are far better solutions than tailscale.

    Have a look at full mesh VPNs like:

    https://github.com/cjdelisle/cjdns

    https://github.com/yggdrasil-network/yggdrasil-go

    https://github.com/gsliepen/tinc

    https://github.com/costela/wesher

    These build actual mesh networks where every node is equal and can serve as a router for other nodes to resolve difficult network topologies (where some nodes might not be connected to the internet, but do have connections to other nodes with an internet connection).

    Sending data through multiple routers is also possible. They also deal with nodes disappearing and change routes accordingly.

    tailscale (and similar solutions like netbird) still use a bunch of "proxy servers" for that. You can set them up on intermediate nodes, but that have to be dealt with manually (and you get two kinds of nodes).

  • The Iran Firewall: A preliminary report
    3 projects | news.ycombinator.com | 28 Oct 2022
    The only real solution long-term is completely peer-to-peer ad-hoc networking that doesn't depend on BGP.

    A few projects are in similar territory but none I've seen are working at the layer of bypassing BGP. Many are just acting as an overlay; which works to an extent. https://github.com/yggdrasil-network/yggdrasil-go

    It's probably begging for a different model of the "internet" and where data lives.

    My requirements:

    1. Offline-first applications that sync via a pub/sub DHT of trusted peers. More details here but basically allows bypassing BGP.

  • Make the Internet Yours Again With an Instant Mesh Network
    1 project | /r/Rad_Decentralization | 11 Oct 2022
    It seems like you can limit connections to your node with AllowedPublicKeys (ref).
  • Was war vor 15 Jahren möglich, aber wäre heute undenkbar?
    1 project | /r/FragReddit | 14 Jul 2022
  • [Fanatical] Mindustry - 24 Hour Star Deal (83% off - $1.00 / £0.79 / €0.79)
    3 projects | /r/GameDeals | 9 Jul 2022
    at least on the official discord the recommended way if you don’t want to play on a public server is using yggdrasil
  • Multiplayer Between Steam Owner/Non-Steam Owners
    1 project | /r/Mindustry | 22 May 2022

mesh-networking

Posts with mentions or reviews of mesh-networking. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-03-07.
  • What Happens Inside a 100-Hop IPv6 Wireless Mesh Network?
    3 projects | news.ycombinator.com | 7 Mar 2021
    Heh walked a similar path a few years ago. Wanted to get started developing a mesh network routing algorithm that could handle a hundred hops, got distracted and built a mesh networking test harness / simulation system instead (https://github.com/pirate/mesh-networking).

    Never got around to finishing a full routing algorithm, though we did have a lot of fun testing wacky network topologies and protocols that solved subsets of the problem.

    The closest we came was designing a 2 or 3 tiered system, where nodes self-arrange into clusters of up to 256 nodes with one elected leader to coordinate. The routing table is replicated on all nodes (eventually consistent), but the leader handles all changes. Then there's Layer 2 routing between clusters with a similar leader election system to handle inter-cluster routing.

    We tried to figure out a way to make the routing stateless, (e.g. by encoding a node's position in the graph in its id, sort of like a phone number has a country code, then area code, etc.), but stopped working on it before figuring out a good approach for broadcasting ID changes without flooding the network with broadcast traffic beyond small network sizes.

    Nowadays there are established mesh routing algorithms that solve all these problems (like B.A.T.M.A.N., 802.11s, or even BGP), but it's still a really exciting field that I dream of working in professionally someday.

    https://www.open-mesh.org/projects/open-mesh/wiki

What are some alternatives?

When comparing yggdrasil-go and mesh-networking you can also consider the following projects:

Nebula - A scalable overlay networking tool with a focus on performance, simplicity and security

PJON - PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.

cjdns - An encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.

pinecone - Peer-to-peer overlay routing for the Matrix ecosystem

ZeroTier - A Smart Ethernet Switch for Earth

ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.

tailscale - The easiest, most secure way to use WireGuard and 2FA.

devp2p - Ethereum peer-to-peer networking specifications

netbird - Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls.

ziti-doc - Documentation describing the usage of the Ziti platform.

theta-protocol-ledger - Reference implementation of the Theta Blockchain Ledger Protocol