Robust large-data transfer orchestration over HTTP using a caller-provided HttpClient.
It plans and executes resumable, integrity-aware downloads with mirror selection and streaming verification.
Downloads large objects using HTTP range requests when available:
- ETag / Last-Modified validation
- persistent checkpoint format
- configurable parallelism
- adaptive chunk sizing within min/max bounds (throughput-smoothed)
- corrupt-chunk repair (length mismatch + optional full-digest repair passes)
- partial-file integrity and final cryptographic verification
- safe restart after interruption
- capability detection and correct fallback when ranges are unsupported
Never creates a new HttpClient per request.
Scores candidate mirrors using latency, throughput, availability, and integrity failures:
- failure decay over time
- hysteresis to avoid rapid oscillation
- deterministic tie-breaking
- exportable selection evidence
Generates chunk assignments independently from execution:
- resumable state
- incompatible checkpoint detection
- no overlapping writes
- full-coverage verification
- repair assignments after corrupt chunks
Verifies data while it streams:
- per-chunk and complete-object checks
- detailed mismatch location
- bounded memory (no full-file buffering)
- IDE/plugin/runtime update downloaders
- Multi-CDN artifact fetchers
- Resumable media or dataset transfers with integrity requirements
- Owning
HttpClientlifetime / DNS / proxy policy for the host - A general REST client library
dotnet add package FunctionFoundry.NetworkingNone beyond the .NET shared framework (HttpClient supplied by the caller).