Skip to main content

Crate murmuration_routing

Crate murmuration_routing 

Source
Expand description

§murmuration-routing

A small, dependency-light toolkit for evaluating delay-tolerant (mesh) routing — extracted from the murmuration mesh network so it can be reused and cited on its own.

It contains both the learned routers and the substrate to evaluate them:

See the repository’s results/RESULTS.md for the study these tools produced: bandit routing has a destination-agnostic ceiling, and Q-routing breaks it.

use murmuration_routing::trace::ContactTrace;

// A reproducible synthetic trace: 20 nodes, ~1 day, power-law gaps.
let t = ContactTrace::synthetic(20, 86_400.0, 0.5, 30.0, 0.5, /*seed*/ 1);
let arrival = t.earliest_arrival(/*src*/ 0, /*t0*/ 0.0);
assert_eq!(arrival[0], 0.0); // the source is reachable at t0 by definition

Re-exports§

pub use router::MeshMessage;
pub use router::MurmurationAddress;
pub use router::Router;
pub use router::RouterStore;

Modules§

error
Minimal error type for the routing crate.
peer
Peer types used by the router — connection state, per-peer metrics, and the observable PeerInfo a routing decision reads. The networking PeerManager stays in the parent node; these are the pure data types.
router
routing_logger
stats
trace
Contact traces for delay-tolerant routing evaluation.