Skip to main content

alpaca_http/
lib.rs

1//! Shared HTTP transport for the `alpaca-rust` workspace.
2//!
3//! `alpaca-rest-http` provides the reusable request pipeline used by the higher-level
4//! SDK crates. It includes request construction, retry policy, response and
5//! error metadata, observer hooks, and concurrency limiting.
6//!
7//! Most applications should use `alpaca-data` or `alpaca-trade` instead of
8//! depending on this crate directly.
9//!
10//! ```rust
11//! use alpaca_http::{HttpClient, RetryConfig};
12//!
13//! let client = HttpClient::builder()
14//!     .retry_config(RetryConfig::default())
15//!     .build()?;
16//! let _ = client;
17//! # Ok::<(), alpaca_http::Error>(())
18//! ```
19//!
20#![forbid(unsafe_code)]
21
22pub mod auth;
23pub mod client;
24pub mod error;
25pub mod meta;
26pub mod observer;
27pub mod rate_limit;
28pub mod request;
29pub mod retry;
30
31pub use auth::{Authenticator, StaticHeaderAuthenticator};
32pub use client::{HttpClient, HttpClientBuilder};
33pub use error::Error;
34pub use meta::{ErrorMeta, HttpResponse, ResponseMeta};
35pub use observer::{
36    ErrorEvent, NoopObserver, RequestStart, ResponseEvent, RetryEvent, TransportObserver,
37};
38pub use rate_limit::{ConcurrencyLimit, ConcurrencyPermit};
39pub use request::{NoContent, RequestBody, RequestParts};
40pub use retry::{RetryConfig, RetryDecision};