ndn_discovery/gossip/mod.rs
1//! Gossip-based discovery supplements.
2//!
3//! Two independent `DiscoveryProtocol` implementations for network-wide
4//! state dissemination:
5//!
6//! | Module | Protocol | Namespace | Mechanism |
7//! |--------|----------|-----------|-----------|
8//! | [`epidemic`] | [`EpidemicGossip`] | `/ndn/local/nd/gossip/` | Pull-gossip; Interest-driven neighbor state snapshots |
9//! | [`svs_gossip`] | [`SvsServiceDiscovery`] | `/ndn/local/sd/updates/` | SVS sync group for push service-record notifications |
10//!
11//! Both are optional. Attach them to a [`CompositeDiscovery`] alongside
12//! `UdpNeighborDiscovery` or `EtherNeighborDiscovery`:
13//!
14//! ```ignore
15//! let mut composite = CompositeDiscovery::default();
16//! composite.add(Box::new(udp_nd)).unwrap();
17//! composite.add(Box::new(EpidemicGossip::new(config.clone()))).unwrap();
18//! composite.add(Box::new(SvsServiceDiscovery::new(node_name, config))).unwrap();
19//! ```
20//!
21//! [`CompositeDiscovery`]: crate::CompositeDiscovery
22
23pub mod epidemic;
24pub mod svs_gossip;
25
26pub use epidemic::EpidemicGossip;
27pub use svs_gossip::SvsServiceDiscovery;