chorus_core/lib.rs
1//! # chorus-core
2//!
3//! Core traits, types, and routing engine for Chorus CPaaS.
4//!
5//! Chorus provides SMS and Email delivery with smart routing, multi-provider
6//! failover, and cost optimization through waterfall routing (email-first,
7//! SMS-fallback).
8//!
9//! ## Key Components
10//!
11//! - [`Chorus`](client::Chorus) — Main client with builder pattern
12//! - [`SmsSender`](sms::SmsSender) / [`EmailSender`](email::EmailSender) — Provider traits
13//! - [`WaterfallRouter`](router::WaterfallRouter) — Cost-optimized routing engine
14//! - [`Template`](template::Template) — `{{variable}}` template rendering
15//!
16//! ## Quick Start
17//!
18//! ```rust,no_run
19//! use chorus_core::client::Chorus;
20//! use chorus_core::types::SmsMessage;
21//! use std::sync::Arc;
22//!
23//! # async fn example() -> Result<(), chorus_core::error::ChorusError> {
24//! let chorus = Chorus::builder()
25//! // .add_sms_provider(Arc::new(my_provider))
26//! .default_from_sms("+1234567890".into())
27//! .build();
28//!
29//! let msg = SmsMessage {
30//! to: "+0987654321".into(),
31//! body: "Hello from Chorus!".into(),
32//! from: None,
33//! };
34//! let result = chorus.send_sms(&msg).await?;
35//! # Ok(())
36//! # }
37//! ```
38
39pub mod client;
40pub mod email;
41pub mod error;
42pub mod router;
43pub mod sms;
44pub mod template;
45pub mod types;