@santhoshse7en/proxy-rank
v1.0.0
Published
ProxyRank — Rank Proxy Providers with Real-World Benchmarks.
Downloads
81
Maintainers
Readme
ProxyRank
Rank proxy providers with real-world benchmarks — not synthetic lab tests.
ProxyRank runs actual HTTP traffic through your proxy against your target URL, measures full network timing (DNS → TCP → TLS → TTFB → download), and helps you pick the fastest, most reliable provider for your workload. Credentials never leave your machine.
npx @santhoshse7en/proxy-rankOpens the web UI at http://127.0.0.1:9480 and starts the local agent on http://127.0.0.1:9470.
Why ProxyRank?
Most proxy comparisons stop at marketing claims or a single latency number. ProxyRank is built for teams who need to answer harder questions:
- Which provider is most reliable on my target under real load?
- Where do failures happen — DNS, TLS, TTFB, timeouts, blocks?
- Can I share a diagnostic report with my proxy vendor so they can fix bad exit nodes?
- How do BrightData, Oxylabs, and others compare on the same target, same concurrency, same TPS?
Ranking weights stability first — success rate and tail latency (P95/P99) matter more than a lucky average.
How it works
┌─────────────┐ HTTP/SSE ┌──────────────────┐ proxy ┌─────────────┐
│ Browser UI │ ────────────────► │ Local Agent │ ─────────────► │ Target │
│ (React) │ ◄──────────────── │ 127.0.0.1:9470 │ ◄───────────── │ Website │
└─────────────┘ live metrics └────────┬─────────┘ responses └─────────────┘
│ │
│ credentials (localhost only) │ via your proxy
└──────────────────────────────────►│Browsers cannot route HTTP through proxies with full timing control. A local Node.js agent executes real requests and streams per-request metrics back to the UI over SSE.
Privacy: Credentials live in browser memory and are sent only to 127.0.0.1. Optional AES-GCM encryption for saved profiles in localStorage. Nothing is uploaded to ProxyRank servers.
Quick start
Run (recommended)
npx @santhoshse7en/proxy-rankOr install globally:
npm install -g @santhoshse7en/proxy-rank
proxy-rankDevelop locally
git clone https://github.com/santhoshse7en/proxy-rank.git
cd proxy-rank
npm install
npm run dev| Mode | Web UI | Agent | |------|--------|-------| | npm package | http://127.0.0.1:9480 | http://127.0.0.1:9470 | | Development | http://localhost:5173 | http://127.0.0.1:9470 |
Benchmark workflow
- Provider — Pick from 15+ built-in providers or configure a custom proxy
- Credentials — Provider-specific form; test connection before running
- Target — URL, HTTP method, headers, query, body; import from cURL
- Confirm — Request count, concurrency, timeout, target TPS, country validation
- Run — Live dashboard: RPS, latency sparklines, per-request timeline, logs
- Results — KPIs, charts, request table, failure diagnostics, insights
- Compare — Rank runs side-by-side across providers
- Export — Audience-specific reports (see below)
All metrics come from real execution. No mock or simulated data.
Features
Load testing controls
| Setting | What it does | |---------|----------------| | Request count | Total requests in the run | | Concurrency | Parallel in-flight requests per benchmark | | Target TPS | Pace request starts (achieved TPS shown separately) | | Timeout | Per-request limit | | Country / exit IP | Validate geo routing per provider |
One benchmark runs at a time. Parallelism is within a run (concurrency), not across multiple providers simultaneously.
Results dashboard
Per-run analysis includes:
- Success rate, min/avg/P50/P95/P99/max latency
- Network timing breakdown (DNS, TCP, TLS, TTFB, download)
- Per-request waterfall and timeline
- Exit IP, ASN, ISP, geo validation
- Failure taxonomy (auth, timeout, blocked, rate-limit, network, HTTP errors)
- Auto-generated insights and recommendations
Compare
Compare every completed run in history — filtered by target, provider, config, date, or individual run.
- Stability-weighted scoring — P95/P99 and success rate weighted heavily
- Latest per provider — fair head-to-head with one recent run each
- Mixed-config warning — alerts when runs used different load profiles
- Charts: radar, grouped metrics, scatter, box plot, latency trend, score bars
- Expandable diagnostics per run; CSV/JSON compare export
Each historical run is a separate row. Re-running the same provider creates a new entry identified by completion timestamp.
History & settings
- History — Search, filter, rerun, export any past benchmark
- Settings — Encrypted credential storage, default load profile, theme/accent, factory reset
- Command palette —
⌘Kquick navigation
Exports
Each format serves a different audience:
| Export | Audience | Purpose | |--------|----------|---------| | PDF Report | Managers, procurement | Executive summary — downloadable PDF | | CSV (Raw Requests) | Developers, analysts | Every request for Excel filtering and charts | | JSON | Developers, automation | Full benchmark payload + metadata | | HAR | Developers | Request/response debugging | | Provider Diagnostic | Proxy vendor support/NOC | Root-cause package: error analysis, exit nodes, slowest requests, timeline, recommendations + JSON + CSV |
The Provider Diagnostic Report is designed to answer why performance degraded — not just what the success rate was.
Supported providers
Built-in profiles with credential forms and connection testing:
BrightData · Oxylabs · NetNut · Smartproxy · SOAX · ScraperAPI · ScrapeOps · Scrape.do · ScrapingBee · Crawlbase · Decodo · IPRoyal · Webshare · DataImpulse · Zyte · Digitap (internal) · Custom proxy
Provider definitions live in proxyrank-shared and can be extended.
Project structure
Monorepo (npm workspaces):
| Package | Path | Role |
|---------|------|------|
| @proxy-rank/frontend | frontend/ | React + Vite UI |
| proxyrank-agent | agent/ | Fastify agent — benchmark execution, SSE |
| proxyrank-shared | shared/ | Types, providers, validation |
| @santhoshse7en/proxy-rank | packages/proxyrank-local/ | Published npm bundle (CLI + UI + agent) |
Routes
| Route | Page |
|-------|------|
| / | Benchmark wizard |
| /results/:id | Benchmark results |
| /compare | Provider comparison |
| /history | Benchmark history |
| /settings | Settings |
Scripts
| Command | Description |
|---------|-------------|
| npm run dev | Web UI + local agent (watch mode) |
| npm run dev:web | Frontend only |
| npm run dev:agent | Agent only |
| npm run build | Production build (shared → agent → frontend) |
| npm run build:package | Build publishable npm package |
| npm run start:package | Run package CLI from repo |
| npm run publish:package | Build and publish to npm |
| npm run typecheck | Typecheck all workspaces |
Documentation
- npm package guide — build, publish, install, test
- Architecture — system design, data flow, storage model
Requirements
- Node.js 20+
- A proxy provider account (for real benchmarks)
- Network access from your machine to the proxy and target
License
MIT — see package license.
