fmp_rs/
lib.rs

1//! # FMP-RS
2//!
3//! An ergonomic Rust wrapper for the Financial Modeling Prep (FMP) API.
4//!
5//! This library provides a comprehensive, type-safe interface to the FMP API,
6//! with support for mocking and testing without making actual API requests.
7//!
8//! ## Example
9//!
10//! ```no_run
11//! use fmp_rs::FmpClient;
12//!
13//! #[tokio::main]
14//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
15//!     let client = FmpClient::new();
16//!     let quote = client.quote().get_quote("AAPL").await?;
17//!     println!("Apple stock price: ${}", quote.price);
18//!     Ok(())
19//! }
20//! ```
21
22pub mod client;
23pub mod endpoints;
24pub mod error;
25pub mod models;
26
27// Production-grade enhancements
28pub mod bulk_processing;
29pub mod cache;
30pub mod production;
31pub mod production_client;
32
33#[cfg(test)]
34mod tests;
35
36pub use client::{FmpClient, FmpClientBuilder};
37pub use error::{Error, Result};
38
39// Re-export production features
40pub use bulk_processing::{BulkProcessingConfig, BulkProgress, ChunkProcessor, DataAggregator};
41pub use cache::{CacheConfig, CacheMetrics, IntelligentCache, SmartCacheStrategy};
42pub use production::{Metrics, PoolConfig, ProductionExecutor, RateLimitConfig, RetryConfig};
43pub use production_client::{ProductionClientBuilder, ProductionConfig, ProductionFmpClient};
44
45// Re-export commonly used types
46pub use endpoints::*;
47pub use models::common::*;