Skip to main content

predict_sdk/websocket/
mod.rs

1//! WebSocket module for Predict.fun real-time data
2//!
3//! This module provides WebSocket connectivity for receiving real-time
4//! orderbook updates and other market data from Predict.fun.
5//!
6//! # Example
7//!
8//! ```ignore
9//! use predict_sdk::websocket::{PredictWebSocket, WsMessage};
10//!
11//! let ws = PredictWebSocket::new("wss://ws.predict.fun/ws".to_string());
12//! let mut stream = ws.connect().await?;
13//!
14//! // Subscribe to a market's orderbook
15//! ws.subscribe_orderbook(5614).await?;
16//!
17//! // Process incoming messages
18//! while let Some(msg) = stream.next().await {
19//!     match msg? {
20//!         WsMessage::PushMessage(push) if push.is_orderbook() => {
21//!             let orderbook = parse_orderbook_update(&push)?;
22//!             println!("Orderbook update: {:?}", orderbook);
23//!         }
24//!         _ => {}
25//!     }
26//! }
27//! ```
28
29mod client;
30mod types;
31
32pub use client::{
33    parse_asset_price_update, parse_orderbook_update, parse_wallet_event, PredictWebSocket,
34    PredictWsStream,
35};
36pub use types::{
37    AssetPriceData, OrderbookData, PriceLevel, PushMessage, RawWsMessage, RequestResponse, WsError,
38    WsMessage, WsRequest,
39};