alpaca_data/lib.rs
1//! Async Rust client for the Alpaca Market Data HTTP API.
2//!
3//! The root entrypoint is [`Client`]. It exposes five resource clients:
4//!
5//! - [`Client::stocks`]
6//! - [`Client::options`]
7//! - [`Client::crypto`]
8//! - [`Client::news`]
9//! - [`Client::corporate_actions`]
10//!
11//! The crate keeps two layers:
12//!
13//! - Mirror layer: direct wrappers for the official HTTP endpoints
14//! - Convenience layer: `*_all` and `*_stream` helpers for paginated endpoints
15//!
16//! # Example
17//!
18//! ```no_run
19//! use alpaca_data::{Client, stocks};
20//!
21//! # async fn demo() -> Result<(), alpaca_data::Error> {
22//! let client = Client::builder()
23//! .api_key(std::env::var("APCA_API_KEY_ID").expect("APCA_API_KEY_ID is required"))
24//! .secret_key(std::env::var("APCA_API_SECRET_KEY").expect("APCA_API_SECRET_KEY is required"))
25//! .build()?;
26//!
27//! let _response = client
28//! .stocks()
29//! .latest_bars(stocks::LatestBarsRequest {
30//! symbols: vec!["AAPL".into()],
31//! feed: None,
32//! currency: None,
33//! })
34//! .await?;
35//! # Ok(())
36//! # }
37//! ```
38
39mod auth;
40mod client;
41mod common;
42mod error;
43mod transport;
44
45pub mod corporate_actions;
46pub mod crypto;
47pub mod news;
48pub mod options;
49pub mod stocks;
50
51pub use client::{Client, ClientBuilder};
52pub use error::Error;