rift-mesh 0.1.3

Mesh networking, session management, and E2EE for Rift P2P
Documentation

rift-mesh


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.