5 releases
| 0.1.4 | Feb 11, 2026 |
|---|---|
| 0.1.3 | Feb 11, 2026 |
| 0.1.2 | Feb 11, 2026 |
| 0.1.1 | Feb 10, 2026 |
| 0.1.0 | Feb 10, 2026 |
#13 in #mesh-networking
Used in rift-sdk
315KB
6.5K
SLoC
rift-mesh
Mesh networking, session management, and E2EE for the riftd P2P protocol.
Part of the riftd project — serverless P2P voice + text chat over UDP.
What's in this crate?
rift-mesh is the heart of riftd's networking:
- Mesh Topology — Every peer connects to every peer
- Noise Sessions — Encrypted channels using Noise_XX
- E2EE — End-to-end encryption for all messages
- NAT Traversal — Automatic hole punching with fallback
- Peer Relay — Route through peers when direct fails
- Session Management — Handle joins, leaves, reconnects
Usage
use rift_mesh::{MeshNode, MeshConfig};
let config = MeshConfig::default();
let node = MeshNode::new(config).await?;
// Join a channel
node.join(channel_id).await?;
// Send a message
node.send_chat(peer_id, "Hello!").await?;
// Handle incoming messages
while let Some(event) = node.next_event().await {
match event {
MeshEvent::Chat { from, message } => { /* ... */ }
MeshEvent::Voice { from, frame } => { /* ... */ }
MeshEvent::PeerJoined(peer) => { /* ... */ }
}
}
Features
predictive-rendezvous(default) — Enable SRT-based NAT traversal
Related Crates
| Crate | Description |
|---|---|
| rift-core | Identity and crypto primitives |
| rift-protocol | Message types |
| rift-nat | STUN/TURN support |
| rift-rndzv | Predictive Rendezvous |
| rift-sdk | High-level API |
Citation
If you use riftd in academic work, please cite:
de Beer, R. (2026). Predictive Rendezvous: Time–Intent–Deterministic Peer Coordination Without Infrastructure. Zenodo. https://doi.org/10.5281/zenodo.18528430
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Dependencies
~22–64MB
~1M SLoC