supabase_realtime_rs/lib.rs
1//! # Supabase Realtime Rust
2//!
3//! An unofficial Rust client for Supabase Realtime (Phoenix Channels WebSocket protocol).
4//!
5//! ## Example
6//!
7//! ```no_run
8//! use supabase_realtime_rs::{RealtimeClient, RealtimeClientOptions};
9//!
10//! #[tokio::main]
11//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
12//! let client = RealtimeClient::new(
13//! "wss://your-project.supabase.co/realtime/v1",
14//! RealtimeClientOptions {
15//! api_key: "your-anon-key".to_string(),
16//! ..Default::default()
17//! }
18//! )?;
19//!
20//! client.connect().await?;
21//! Ok(())
22//! }
23//! ```
24
25pub mod channel;
26pub mod client;
27pub mod infrastructure;
28pub mod messaging;
29pub mod types;
30pub mod websocket;
31
32pub use channel::{
33 ChannelState, ColumnInfo, EventPayload, PostgreInsertPayload, PostgresChangeEvent,
34 PostgresChangesFilter, PostgresChangesPayload, PostgresDeletePayload, PostgresUpdatePayload,
35 RealtimeChannel, RealtimeChannelOptions,
36};
37pub use client::{
38 ClientState, ConnectionManager, ConnectionState, RealtimeClient, RealtimeClientOptions,
39};
40pub use messaging::{ChannelEvent, PostgresChangeFilter, PostgresChangeType, SystemEvent};
41pub use types::{RealtimeError, RealtimeMessage};