$ show nfx/slrp
SLRP is a rotating open proxy multiplexer that automatically discovers, validates, and rotates proxies from dozens of online sources. It runs as a single Go binary with an embedded Web UI and provides both a REST API and an MITM HTTP/HTTPS proxy endpoint. Internally, it uses a modular architecture with components for source scraping, proxy checking, pool management, request history recording, and IP geolocation. It features a custom query language for filtering proxy pool, history, and blacklist data, and includes a code generator to create type-safe dataset accessors from Go struct definitions. The system persists state to disk and can be configured via YAML or environment variables.
The LLM identified 3 files worth highlighting for reuse:
Yacc grammar for a custom query language that supports filtering, sorting, and faceted search over in-memory datasets. The parser produces an AST that is optimized and evaluated at runtime. The repository includes a code generator (ql/generator) that reads Go struct definitions and auto-generates dataset accessor code, making it a reusable pattern for adding query capabilities to any Go struct slice.
A circular buffer-based rolling counter that tracks integer increments over configurable time windows. It supports efficient sliding window calculations with automatic interval clearing, binary serialization for persistence, and is used to monitor proxy offer/success rates within short (5-minute) and long (24-hour) windows. The implementation is self-contained and can be extracted into any project that needs lightweight time-series aggregation.
A configurable HTTP proxy checker that verifies proxy liveliness and anonymity by fetching a known IP-check page and comparing the returned IP. Supports multiple strategies: 'simple' (randomly picks one of several external IP checkers), 'headers' (looks for real IP in response headers indicative of transparent proxies), and 'twopass' (combines both). The checker is designed as an interface and can be reused in other projects needing proxy validation.