Expand description
Asynchronous HTTP requests with rate limiting, connection reuse, and bounded responses.
§Architecture
HttpClient applies quota policy before delegating requests to InnerHttpClient. The inner
client owns one reusable Hyper client, preserving its connection pool across requests and clones.
§Rate limiting and requests
Requests can await default and per-key quotas from one or more shared
RateLimiter instances. Sharing a limiter across clients
enforces one process-wide budget for scopes such as an IP address or account. The client accepts
default and per-request headers, repeated query values, raw bodies, client-level and per-request
timeouts, and an optional proxy.
HTTP status errors remain HttpResponse values for adapter-specific handling. The transport
retries requests canceled before transmission on reused connections, and allows two retries for
remote HTTP/2 GOAWAY(NO_ERROR) or REFUSED_STREAM errors. Other transport failures and HTTP
status codes do not trigger retries. Adapters can apply crate::retry::RetryManager when the
operation and venue error are safe to retry.
§Connection and response policy
Production clients built through HttpClient::builder enable TCP_NODELAY, pooled idle
connections, HTTP/2 keepalive while idle, and adaptive HTTP/2 flow control. Buffered responses
retain only configured header fields and reject bodies larger than 100 MiB, including chunked
bodies without a declared length. HttpClient::get_stream consumes bodies incrementally
without a total size limit. The redacted request path removes credential-bearing URLs from
transport errors and logs.
Hyper owns the lifecycle of individual pooled connections, so this client exposes no socket state sink or explicit reconnect operation. Callers observe connection failure through each request result and retain the client to preserve its pool.
Re-exports§
pub use client::HttpClient;pub use client::HttpRedirectPolicy;pub use client::InnerHttpClient;pub use error::HttpClientError;pub use types::HttpMethod;pub use types::HttpResponse;pub use types::HttpStatus;
Modules§
- client
- HTTP client implementation with rate limiting and timeout support.
- error
- HTTP client error types.
- types
- HTTP types including status codes, methods, and responses.
Structs§
- Http
Response Stream - An HTTP response whose body is consumed incrementally.
- Method
- The Request Method (VERB)
- Status
Code - An HTTP status code (
status-codein RFC 9110 et al.). - Url
- A parsed URL record.
Constants§
- USER_
AGENT - Contains a string that allows identifying the requesting client’s software.