| sources |
Vec<String> |
[] |
URLs of proxy source lists (line-delimited ip:port) |
| source_refresh_interval |
Duration |
600s |
How often to re-fetch proxy sources |
| rate_limit |
RateLimitConfig |
— |
Per-(proxy, host) rate-limiting settings |
| proxy_timeout |
Duration |
8s |
Timeout for a single proxy connection attempt |
| max_concurrent_per_request |
usize |
3 |
Number of proxy paths raced per request (K) |
| max_inflight |
usize |
100 |
Global in-flight concurrency limit |
| task_pool_capacity |
usize |
1000 |
Maximum number of pending tasks in the pool |
| health_window |
usize |
30 |
Sliding window size for health tracking |
| cooldown_base |
Duration |
30s |
Base cooldown after consecutive failures |
| cooldown_max |
Duration |
300s |
Maximum cooldown duration |
| cooldown_consecutive_fails |
usize |
3 |
Consecutive failures before entering cooldown |
| eviction_min_samples |
usize |
30 |
Minimum samples before a proxy can be evicted |
| circuit_breaker_threshold |
usize |
10 |
Target errors before tripping the host circuit breaker |
| circuit_breaker_probe_interval |
Duration |
30s |
Interval between probe requests when breaker is open |
| state_file |
Option<PathBuf> |
None |
File path for JSON state persistence |
| state_save_interval |
Duration |
300s |
How often to persist state to disk |
| metrics_log_interval |
Duration |
30s |
How often to log the metrics summary line |
| prefer_remote_dns |
bool |
true |
Use socks5h:// for remote DNS resolution |