1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! # SMS Kit
//!
//! A comprehensive, production-ready multi-provider SMS abstraction library for Rust.
//!
//! ## Features
//!
//! - **Multi-provider support**: Plivo, Twilio, AWS SNS, and more
//! - **Framework agnostic**: Works with Axum, Warp, Actix, or any HTTP framework
//! - **Webhook processing**: Unified webhook handling for inbound SMS
//! - **Type safety**: Strongly typed SMS operations and responses
//! - **Rate limiting**: Built-in rate limiting with per-provider configuration
//! - **Comprehensive configuration**: Environment-based configuration management
//! - **Observability**: Structured logging and tracing support
//! - **Production ready**: Security, error handling, and reliability features
//!
//! ## Quick Start
//!
//! ```rust,ignore
//! use smskit::prelude::*;
//! use sms_plivo::PlivoClient;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let client = PlivoClient::new(
//! "your_auth_id".to_string(),
//! "your_auth_token".to_string(),
//! None,
//! );
//!
//! let response = client.send(SendRequest {
//! to: "+1234567890",
//! from: "+0987654321",
//! text: "Hello from SMS Kit!"
//! }).await?;
//!
//! println!("Message sent with ID: {}", response.id);
//! Ok(())
//! }
//! ```
//!
//! ## Configuration
//!
//! SMS Kit uses a comprehensive configuration system that supports environment variables:
//!
//! ```rust,ignore
//! use smskit::config::AppConfig;
//!
//! let config = AppConfig::from_env()?;
//! println!("Rate limit: {} requests per {}s",
//! config.rate_limit.max_requests,
//! config.rate_limit.window_seconds);
//! ```
pub use *;
/// Common imports for SMS Kit usage