Skip to main content

Module http

Module http 

Source
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§

HttpResponseStream
An HTTP response whose body is consumed incrementally.
Method
The Request Method (VERB)
StatusCode
An HTTP status code (status-code in RFC 9110 et al.).
Url
A parsed URL record.

Constants§

USER_AGENT
Contains a string that allows identifying the requesting client’s software.