libmesh is a QUIC-native peer reachability layer for Zig.
It provides:
- identity-bound peer discovery
- setup signaling between peers
- authenticated relay fallback
libself -> who is this peer?
libmesh -> where is this peer and how do I reach them?
libdice -> can I establish a direct path?
libfast -> run QUIC on the chosen path
libmesh depends directly on:
libselflibfast
libmesh does not directly depend on:
libdicelibfluxliblink
libmesh
├── discovery
├── signaling
├── relay
├── routing
└── integration
lib/mesh.zig exposes high-level entry points:
publishSelf(...)lookupPeer(...)lookupPeerAt(...)expirePeers(...)signalPeer(...)openRelayRoute(...)resolveRoutes(...)connectPeerViaDriver(...)connectPeerViaDriverDefault(...)
libmeshcarries peer metadata, signaling, and relay fallback.libdiceperforms ICE/STUN/TURN direct path establishment externally.libfastruns QUIC over direct or relayed route.
Default route policy is:
- direct endpoint
- signaling + external
libdicewhen traversal is needed and available - relay fallback when direct path cannot be used
make build
make testSee docs/EXAMPLES.md for scenario-driven example entry points.