Official Rust SDK for wSocket — Realtime Pub/Sub over WebSockets.
Add to your Cargo.toml:
[dependencies]
wsocket-io = "0.1.0"use wsocket_io::Client;
#[tokio::main]
async fn main() {
let client = Client::connect("wss://node00.wsocket.online", "your-api-key")
.await
.unwrap();
let chat = client.channel("chat:general").await;
chat.subscribe(|data, meta| {
println!("[{}] {}", meta.channel, data);
}).await;
chat.publish(serde_json::json!({"text": "Hello from Rust!"})).await;
client.wait().await;
}- Pub/Sub — Subscribe and publish to channels in real-time
- Presence — Track who is online in a channel
- History — Retrieve past messages
- Connection Recovery — Automatic reconnection with message replay
- Async — Built on
tokioandtokio-tungstenite
let chat = client.channel("chat:general").await;
chat.presence().on_enter(|m| {
println!("joined: {}", m.client_id);
}).await;
chat.presence().on_leave(|m| {
println!("left: {}", m.client_id);
}).await;
chat.presence().enter(serde_json::json!({"name": "Alice"})).await;
let members = chat.presence().get().await;chat.on_history(|result| {
for msg in &result.messages {
println!("[{}] {}", msg.timestamp, msg.data);
}
}).await;
chat.history(HistoryOptions { limit: Some(50), ..Default::default() }).await;- Rust edition 2021+
tokio,tokio-tungstenite,serde,serde_json
cargo build
cargo testMIT