015b2417b96c16deab8753012bb32be5628d1366
- same-host redirect policy (scheme+host+port), cross-host redirects surface the 302 untouched - API-key/default headers cannot cross hosts - retries gated to idempotent methods only (GET/HEAD/PUT/DELETE/OPTIONS); POST/PATCH/CONNECT/TRACE bypass the retry middleware entirely - retry backoff jittered (Bounded) with tightened bounds [100ms, 2s] and a wall-clock budget (TotalRetryBudget, default 10s) on top of the count - default request 30s / connect 10s / read 30s timeouts (gateway 30s deadline anchor); Retry-After ceiling 300s, configurable - Retry-After recorded against the effective (post-redirect) URL; eviction prefers expired entries, then the farthest-future deadline; wake jittered (25% of remaining, capped 2s) to break the thundering herd - reload() is async (tokio::fs); new() documented as one-shot blocking verification: cargo test --lib client:: 36 passed; clippy/fmt applied
Languages
Rust
98.6%
Python
1.3%
Shell
0.1%