Expand description
§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
ⓘ
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:
ⓘ
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);Re-exports§
pub use config::*;
Modules§
- config
- prelude
- Common imports for SMS Kit usage
- rate_
limiter