ccxt_core/http_client/mod.rs
1//! HTTP client abstraction layer
2//!
3//! Provides a unified HTTP request interface with support for:
4//! - Automatic retry mechanism with configurable strategies
5//! - Timeout control per request
6//! - Request and response size limits for DoS protection
7//! - Circuit breaker integration for resilience
8//! - Rate limiting integration
9//!
10//! # Example
11//!
12//! ```rust,no_run
13//! use ccxt_core::http_client::{HttpClient, HttpConfig};
14//!
15//! let config = HttpConfig::default();
16//! let client = HttpClient::new(config)?;
17//!
18//! let response = client.get("https://example.com/api", None).await?;
19//! ```
20//!
21//! # Features
22//!
23//! - **Retry**: Automatic retry with exponential backoff for transient failures
24//! - **Circuit Breaker**: Prevents cascading failures by blocking requests to failing endpoints
25//! - **Rate Limiting**: Optional rate limiting for API quota management
26//! - **Size Limits**: Protection against oversized requests/responses
27
28mod builder;
29mod config;
30mod headers;
31mod request;
32mod response;
33mod retry;
34
35#[cfg(test)]
36mod tests;
37
38pub use builder::HttpClient;
39pub use config::HttpConfig;