Configuration

All fields on ScatterProxyConfig with their types and defaults.

Field Type Default Description
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

RateLimitConfig

Field Type Default Description
default_interval Duration 500ms Minimum interval between requests per (proxy, host) pair
host_overrides HashMap<String, Duration> {} Per-host interval overrides