Skip to main content

pulith_fetch/
lib.rs

1//! HTTP transfer primitives for Pulith.
2//!
3//! Keep planning in `pulith-source`, verification in `pulith-verify`,
4//! and filesystem safety in `pulith-fs`. This crate owns transfer execution.
5
6mod error;
7
8pub mod cache;
9pub mod codec;
10pub mod config;
11pub mod fetch;
12pub mod net;
13pub mod perf;
14pub mod progress;
15pub mod rate;
16pub mod segment;
17
18pub use error::{Error, Result};
19
20pub use cache::{Cache, CacheControl, CacheEntry, CacheError, CacheStats, HttpCache};
21pub use codec::{
22    ChecksumConfig, MultiVerifier, SignatureVerifier, StreamTransform, StreamVerifier,
23    TransformError, verify_checksum, verify_signature,
24};
25pub use config::{
26    DownloadSource, FetchOptions, FetchPhase, MultiSourceOptions, RetryDelayFuture,
27    RetryDelayProvider, RetryPolicy, SourceSelectionStrategy, SourceType,
28};
29pub use fetch::{
30    BatchDownloadJob, BatchFetcher, BatchOptions, ConditionalFetcher, ConditionalOptions,
31    DownloadCheckpoint, FetchReceipt, FetchSource, Fetcher, MultiSourceFetcher, RemoteMetadata,
32    ResumableFetcher, SegmentedFetcher, SegmentedOptions,
33};
34pub use net::{BoxStream, HttpClient, ReqwestClient};
35pub use progress::{
36    ExtendedProgress, PerformanceMetrics, PhaseTimings, Progress, ProgressReporter,
37};
38pub use rate::{AsyncThrottledStream, ThrottledStream, TokenBucket, retry_delay};
39pub use segment::{Segment, calculate_segments, is_redirect};