cf-speed-tui
Rust · Ratatui · Network Diagnostics

your network,

graded.
LATENCY SIGNAL — live waveform 1 div = 10ms · t/div = 1s
A
grade
idle latency
12.4 ms ● pass
download
943 Mbps ● pass
upload
821 Mbps ● pass
packet loss
0.0 % ● pass
TLS handshake
38 ms ● pass

cloudflare-speed-tui goes beyond bandwidth — TLS handshake timing, ICMP traceroute, UDP packet loss, IPv4/IPv6 comparison, letter-grade scoring. Run once. See everything.

← back to portfolio

The grade formula.

Weight breakdown — composite score → letter grade
35%
Latency
25%
Jitter
25%
Packet Loss
15%
Loaded Overhead
If no loaded latency data, overhead weight redistributes to latency (50/25/25/0). Score 0–100 maps to grade:
A+
≥ 95
A
85–94
B
75–84
C
60–74
D
45–59
F
< 45

What we actually measure.

Nine measurements, each with a dedicated engine module. Not one number — a complete network profile, surfaced in the TUI as it completes.

#MeasurementDescriptionEngine ModuleStatus
01 Idle Latency P50/P95 RTT and jitter to Cloudflare edge, no competing traffic latency.rs measured
02 Loaded Latency RTT under active download/upload — bufferbloat indicator latency.rs measured
03 Download Throughput Multi-stream parallel download, averaged across segments throughput.rs measured
04 Upload Throughput Parallel upload with separate sampling windows throughput.rs measured
05 UDP Packet Loss Burst of UDP probes via Cloudflare TURN endpoint, counts lost/reordered turn_udp.rs measured
06 DNS Resolution Cold resolution timing to 1.1.1.1 / 1.0.0.1, including CNAME chains dns.rs measured
07 TLS Handshake Full TLS 1.3 handshake overhead in isolation — connect to first byte tls.rs measured
08 ICMP Traceroute TTL-exceeded probes mapping path to Cloudflare edge, per-hop latency traceroute.rs raw socket
09 IPv4 vs IPv6 Side-by-side latency and throughput over both stacks ip_comparison.rs informational

TUI widget layer.

grade_badge
tui/widgets/grade_badge.rs
Renders the A+/A/B/C/D/F letter badge with color-coded border and composite score readout.
speed_meter
tui/widgets/speed_meter.rs
Animated bar chart for download and upload throughput. Updates live as multi-stream segments complete.
latency_hist
tui/widgets/latency_hist.rs
Latency histogram: P50, P75, P90, P95, P99 buckets. Shows distribution, not just average.
diagnostics
tui/widgets/diagnostics.rs
DNS timing, TLS handshake, IPv4/IPv6 comparison panel. Rendered as a side panel alongside speed results.
traceroute
tui/widgets/traceroute.rs
Per-hop latency table with IP/hostname and ms column. Populated as ICMP TTL probes return.
charts_view
tui/widgets/charts_view.rs
Time-series sparklines for latency over the test run. Rendered with ratatui's built-in chart primitives.
--output json result.json · exportable · pipeable to jq
"timestamp": "2026-06-29T14:22:07Z",
"grade":     "A",
"score":     91.4,
"idle_latency_ms":   12.4,
"jitter_ms":         1.8,
"download_mbps":     943,
"upload_mbps":       821,
"packet_loss":       0.0,
"dns_ms":            4.2,
"tls_handshake_ms":  38,
"ipv4_latency_ms":   12.4,
"ipv6_latency_ms":   11.9
run it.
grade it.

cloudflare-speed-tui is a private project — not yet publicly released. The crate is under active development.

private beta ← back to portfolio