Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Roadmap & Waves

Historical upstream record. This page documents the original proxybroker-rs project and is retained for provenance. Upstream repository links and historical decisions on this page are intentional and do not describe the current Zuli release plan unless explicitly restated elsewhere.

proxybroker-rs was built past 1.0 in waves: each wave batches features that touch the same module, respect the same dependency order, and can ship as one campaign of one-commit-per-item changes. The full roadmap, with per-item effort estimates and design notes, lives in the repository under docs/roadmap/.

The wave model

Ordering optimizes for four things, in priority order:

  1. Dependencies — a feature never precedes what it needs (Deserialize before save/load; SQLite after file-based save/load; retry-failover with status-gating).
  2. Module batching — features touching the same file ship together, so server.rs / checker.rs / the output path is opened once, not eight times.
  3. Value × feasibility — the biggest genuine gaps and cheapest isolated wins go first.
  4. Principle friction last — features that fight the project’s stated principles (ephemeral-by-design, no speculative abstraction, offline-testable, CC BY 4.0 data hygiene) are deferred until demand pulls them.

Every feature must stay offline-testable (constraint C5 — see The Systematic Refactor).

Waves

WaveThemeHighlightsSpec
1Inputs & foundationcheck subcommand, Deserialize, save/load, FindQuery builderwave-1
2Serving: selection & resilienceselection strategies, sticky sessions, rotate-on-error, --http-allowed-codes, --min-queue/--backlogwave-2
3Serving: auth, control, protocolsproxycontrol API, X-Proxy-Info, upstream proxy auth, --auth, SOCKS5 front-endwave-3
4Output & integration--format url/csv, NDJSON/JSON-array, Serialize for Stats, output templates, City & ASN DBswave-4
5Checking depthjudge-less liveness, timing percentiles, capability profile, retry policy, honeypot verdictwave-5
6ObservabilityPrometheus --metrics, --progress, structured tracing, benchmark harness, top TUIwave-6
7Persistence & adaptiveSQLite --state, adaptive re-checking, watch/live-reloadwave-7
8Distribution & ecosystemstatic musl binary + installer + Docker, rotating connector, MCP serverwave-8
9Redis backendstore-redis — a Redis backend for --state alongside SQLite—

The committed roadmap (Waves 1–9, all A/B/C/D/E/F items plus store-redis and the top TUI) is shipped, along with C8 (ASN attribution) and P1 (provider expansion).

Feature families

Each feature carries a letter-family prefix. What shipped, by family:

FamilyScopeShipped
ACheck engine depthcheck a user list (A1), judge-less liveness (A2), timing percentiles p50/p90/p95 (A3), cookie/referer/SMTP capability profile (A4), configurable retry/backoff (A5), honeypot/trust verdict (A6)
BThe rotating serverfilter passthrough (B3), country filter (B4), selection strategies + sticky (B1), health-scored selection + re-probe (B5), rotate-on-error failover (B2), proxycontrol API (B6), X-Proxy-Info (B7), upstream auth (B8), client --auth (B9), --prefer-connect (B10), --http-allowed-codes (B11), SOCKS5 front-end (B12), --min-queue/--backlog (B13)
CInputs, outputs & geo/ASNDeserialize (C1), save/load (C2), --format url/csv (C3), NDJSON/JSON-array (C4), Serialize for Stats (C5), output templates (C6), City DB (C7), ASN attribution (C8)
DDistribution & persistencestatic musl binary + installer + Docker (D1), SQLite --state (D2), adaptive re-checking + decay (D3)
ELibrary & ecosystemFindQuery builder (E2), watch/live-reload (E3), rotating connector (E1), MCP server (E4)
FObservabilityPrometheus metrics (F1), --progress (F2), structured tracing (F3), top TUI dashboard (F4), benchmark harness (F5)

See Observability for the F-family runtime surface, and Feature Flags for how the optional features gate into the build.

Cross-cutting: providers (P1)

Provider expansion is tracked outside the wave sequence because it is ongoing. The bundled registry grew from the Python original’s 12 sources to 50 curated live sources. Its shape is guarded offline by format-archetype fixtures and a registry integrity test; its liveness is guarded by a scheduled audit workflow (see Contributing). The research and expansion notes live in p1-provider-research.md and p1-provider-expansion.md.

What was deliberately not built

Several features were scoped, understood, and consciously deferred with concrete triggers rather than shipped on speculation. See the Deferred Backlog.