Summary
NMPL (No More Packet Loss) is a production-grade network diagnostic and analytics engine. It transforms raw ICMP/UDP traceroute probe data into structured, ISP-ready evidence bundles by identifying exact bottleneck hops, isolating rate-limiting artifacts from true loss, and enriching hops with ASN/RDAP owner data.
Whether run as a zero-dependency CLI daemon or deployed as a self-hosted FastAPI + HTMX web application, NMPL continuously monitors network paths and archives trace history into a high-concurrency SQLite (WAL mode) database.
Core Features & Architecture
- Multi-Mode Engine (
cli,cli-once,api): Execute instantaneous single-shot CLI diagnostics, run continuous background daemons, or serve a real-time web dashboard. - Non-Blocking ASN & BGP Enrichment: Enriches intermediate IP hops with BGP network ownership data using async background queries to Team Cymru and RDAP registries.
- Smart Bottleneck & Rate-Limit Engine: Differentiates between true path loss (propagating down the chain) and router control-plane ICMP rate-limiting (single-hop spikes with 0% final destination loss).
- SQLite WAL Persistence: Single-file database architecture using Write-Ahead Logging for non-blocking concurrent writes across CLI daemons and FastAPI web requests.
- ISP Support Evidence Bundles: Generates JSON diagnostics, CSV timeline exports, and print-ready HTML evidence reports containing explicit timestamped proof for support tickets.
Real-World Validation Case
- Test Path: Malmö, Sweden (Telenor ISP) $\rightarrow$ Google Public DNS (
8.8.8.8) - Path Metrics: 12 total hops | 9.9ms average latency | 0.0% final destination loss
- Bottleneck Localization: Hop #4 (
81.228.84.95) exhibited a 70.0% local response drop. NMPL classified Hop #4 as control-plane rate-limiting rather than a true path outage because Hop #12 (8.8.8.8) validated clean at 0.0% loss.
Tech Stack & Specs
- Backend Framework: Python 3.11+, FastAPI, Uvicorn
- Frontend Interface: HTMX, Alpine.js, Tailwind CSS (Zero heavy JavaScript build steps)
- Storage Layer: SQLite (WAL mode) with automated database migration
- Probe Engine: Low-level
mtr(ICMP / UDP / TCP) integration - Deployment: Standalone Python CLI executable, Docker, Docker Compose
Live Product & Links
- Commercial Website: getnmpl.com