chorus/lib.rs
1//! # chorus-rs
2//!
3//! Official Rust SDK for Chorus — open-source CPaaS with SMS, Email, and OTP.
4//!
5//! This crate re-exports [`chorus-core`] (types, traits, routing) and
6//! [`chorus-providers`] (Telnyx, Twilio, Plivo, Resend, SES, Mailgun, SMTP)
7//! so you only need one dependency.
8//!
9//! ## Quick Start
10//!
11//! ```rust,no_run
12//! use chorus::prelude::*;
13//! use std::sync::Arc;
14//!
15//! # async fn example() -> Result<(), ChorusError> {
16//! let chorus = Chorus::builder()
17//! .default_from_sms("+1234567890".into())
18//! .build();
19//!
20//! let msg = SmsMessage {
21//! to: "+0987654321".into(),
22//! body: "Hello from Chorus!".into(),
23//! from: None,
24//! };
25//! let result = chorus.send_sms(&msg).await?;
26//! # Ok(())
27//! # }
28//! ```
29
30// Re-export all public modules from chorus-core.
31pub use chorus_core::client;
32pub use chorus_core::email;
33pub use chorus_core::error;
34pub use chorus_core::router;
35pub use chorus_core::sms;
36pub use chorus_core::template;
37pub use chorus_core::templates;
38pub use chorus_core::types;
39
40// Re-export provider implementations from chorus-providers.
41pub mod providers {
42 pub use chorus_providers::email;
43 pub use chorus_providers::sms;
44}
45
46/// Prelude module — import commonly used types with `use chorus::prelude::*`.
47pub mod prelude {
48 pub use chorus_core::client::Chorus;
49 pub use chorus_core::email::EmailSender;
50 pub use chorus_core::error::ChorusError;
51 pub use chorus_core::router::WaterfallRouter;
52 pub use chorus_core::sms::SmsSender;
53 pub use chorus_core::types::{
54 Channel, DeliveryStatus, EmailMessage, SendResult, SmsMessage, TemplateEmailMessage,
55 };
56}