scanclient — HTTP client tuned for security scanning
Why
Security scanners perform huge numbers of HTTP requests under strict resource constraints and retry semantics. scanclient gives one production-oriented client with timeout, retry, proxy, rate limiting, and request observability baked into the crate.
It wraps reqwest but keeps a small, scan-specific API focused on scan workloads: easy defaults, bounded retries, response helpers, and typed errors.
Quick Start
use ;
async
Features
- Thin
ScanClientAPI (get,head,post,request,execute). - Configurable retries with exponential backoff and idempotent status retry policy.
- Optional rate limiting and proxy support.
- Request/response helpers (
body_text,contains, header lookup). - TOML load/parse for client configuration.
TOML Configuration
Use HttpConfig::from_toml or HttpConfig::load.
= 10
= 3
= 250
= 5
= "SanthScanner/1.0"
= false
= 8
[]
= "santh"
use ;
let cfg = from_toml.unwrap;
let _client = from_config;
API Overview
HttpConfig: configuration model.ScanClient::from_config: create client.ScanClient::get,head,post,request,execute.ScanResponse: typed response wrapper (status,headers,body_*,contains).Error,Result: crate-level error handling.
Examples
1) Submit a POST and inspect response
use ;
async
2) Reuse a custom request with method + execute
use Method;
use ;
async
3) Load settings from TOML in scanner bootstrap
use HttpConfig;
let cfg = from_toml.unwrap;
println!;
Traits
scanclient does not define custom traits in the public API.
Related Crates
License
MIT, Corum Collective LLC
Docs: https://docs.rs/scanclient
Santh ecosystem: https://santh.io