ugi 0.2.1

Runtime-agnostic Rust request client with HTTP/1.1, HTTP/2, HTTP/3, H2C, WebSocket, SSE, and gRPC support
Documentation
mod alt_svc;
mod body;
mod browser_emulation;
mod client;
mod connection;
mod cookie;
mod decode;
mod dns;
pub mod download;
mod error;
mod header;
mod metrics;
mod middleware;
mod pool;
mod progress;
mod protocol;
mod proxy;
mod rate_limit;
mod request;
mod response;
mod retry;
mod tls;
mod url;
mod util;

pub use body::{Body, BodyStream};
#[cfg(feature = "emulation")]
pub use browser_emulation::{
    BoringCertCompression, BoringTlsFingerprint, BrowserFamily, BrowserProfile, Emulation,
    EmulationFidelity, EmulationProfile, EmulationProfileBuilder, Http1Fingerprint,
    Http2Fingerprint, Http2PriorityPhase, Http2PrioritySpec, Http3Fingerprint, ProfileMetadata,
    TlsFingerprint,
};
pub use client::{Client, ClientBuilder, RedirectPolicy};
pub use cookie::{CookieJar, CookieMiddleware};
pub use decode::CompressionMode;
pub use dns::DnsConfig;
pub use download::{
    DownloadBuilder, DownloadCapabilities, DownloadDigest, DownloadResult, HashAlgorithm,
};
pub use error::{Error, ErrorKind, Result};
pub use header::{HeaderMap, HeaderName, HeaderValue};
pub use metrics::Metrics;
pub use middleware::{Middleware, Next};
pub use pool::PoolConfig;
pub use progress::{Progress, ProgressConfig, ProgressPhase};
pub use protocol::grpc::{
    GrpcCodec, GrpcDuplexCall, GrpcRequestBuilder, GrpcResponse, GrpcStatus, GrpcStreamingResponse,
};
pub use protocol::websocket::{CloseFrame, WebSocket, WebSocketBuilder, WebSocketMessage};
pub use proxy::{Proxy, ProxyAuth};
pub use rate_limit::RateLimiter;
pub use request::{
    H2KeepAliveConfig, Method, MultipartPart, ProtocolPolicy, Request, RequestBuilder,
    TimeoutConfig, delete, get, grpc, head, options, patch, post, put, request, trace, ws,
};
pub use response::{BytesStream, Response, SseEvent, SseStream, StatusCode, Version};
pub use retry::RetryPolicy;
pub use tls::{RootStore, TlsBackend, TlsConfig};
pub use url::Url;