Synapse scores real-world network quality from measurements you already have. It does not run speed tests — you collect the numbers; Synapse turns them into three metrics:
| Metric | Role | Inputs |
|---|---|---|
| Vortex | Performance / flow | down/up Mbps, ping, jitter, packet loss |
| Radiance | Wireless physical quality | RSSI, noise floor, channel width |
| Axon | Unified health | √(Vortex × Radiance), or Vortex alone on wired links |
Scores are dimensionless. Use ScoreBand for a coarse qualitative reading (critical → excellent).
Installation
[]
= "1.1"
# Optional Serde support
# synapse-rs = { version = "1.1", features = ["serde"] }
Example
use ;
Wired (Ethernet) vs wireless
- Wireless: Axon is the geometric mean of Vortex and Radiance.
- Wired (no RSSI/noise/width): Axon falls back to Vortex so Ethernet still gets a health score.
- If wireless fields are present but invalid (e.g. RSSI below noise), Axon returns an error instead of silently treating the link as wired.
Validation
try_vortex / try_radiance / try_axon reject non-finite values, negative speeds/latency/jitter, packet loss outside 0..=100, zero channel width, and RSSI below the noise floor. The calculate_* helpers return None in those cases.
Examples
Contributing
- Fork and clone
https://github.com/FlanZCode/synapse - Create a branch:
git checkout -b my-feature - Run
cargo test,cargo clippy -- -D warnings, andcargo fmt --check - Open a pull request
License
MIT — see LICENSE.