1.5 KiB
1.5 KiB
swactor-gossip
Epidemic gossip protocol built on the swactor actor runtime.
Nodes exchange state via randomized push-gossip and converge to a consistent view using last-writer-wins versioned values.
Crate layout
protocol—GossipActor,GossipMessage,GossipState(the core protocol implementation)sim— simulation harness with configurable topologies (Ring, Star, FullMesh, Chain, Partitioned) and optional partition healingtrace— per-tick event log andSimulationTracefor post-run analysisproperties— metrics extraction (delivery ratio, convergence round, redundancy, load balance, etc.) and property-based assertions over tracesreport/property_report— self-contained HTML report generators for single-run and multi-scenario results
Tools
Dashboard (gossip-dashboard crate)
A live web dashboard that streams simulation progress to a browser in real time. See crates/gossip-dashboard/.
cargo run -p gossip-dashboard --example dashboard
# or with a TOML config:
cargo run -p gossip-dashboard --example dashboard -- crates/gossip-dashboard/examples/sim.toml
HTML report
The gossip_sim example runs a simulation and writes a standalone HTML report:
cargo run -p swactor-gossip --example gossip_sim
Property report
Runs multiple scenarios and generates an HTML report checking gossip protocol properties (convergence, consistency, load balance):
cargo run -p swactor-gossip --example gossip_property_report