Skip to main content

Crate rustapi_ws

Crate rustapi_ws 

Source
Expand description

§rustapi-ws

WebSocket support for the RustAPI framework.

This crate provides WebSocket upgrade handling, message types, and utilities for building real-time bidirectional communication in your RustAPI applications.

§Features

  • WebSocket Upgrade: Seamless HTTP to WebSocket upgrade via the WebSocket extractor
  • Message Types: Support for Text, Binary, Ping/Pong messages
  • Type-Safe JSON: Serialize/deserialize JSON messages with serde
  • Connection Management: Clean connection lifecycle with proper close handling
  • Broadcast Support: Send messages to multiple connected clients

§Quick Start

use rustapi_rs::prelude::*;
use rustapi_ws::{WebSocket, Message};

async fn ws_handler(ws: WebSocket) -> impl IntoResponse {
    ws.on_upgrade(|socket| async move {
        let (mut sender, mut receiver) = socket.split();
         
        while let Some(msg) = receiver.next().await {
            match msg {
                Ok(Message::Text(text)) => {
                    let _ = sender.send(Message::Text(format!("Echo: {}", text))).await;
                }
                Ok(Message::Close(_)) => break,
                _ => {}
            }
        }
    })
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
    RustApi::new()
        .route("/ws", get(ws_handler))
        .run("127.0.0.1:8080")
        .await
}

Modules§

auth
Authentication support for WebSocket connections WebSocket authentication support
prelude
Prelude module for convenient imports

Structs§

Broadcast
A broadcast channel for sending messages to multiple WebSocket clients
CloseFrame
WebSocket close frame
WebSocket
WebSocket extractor for upgrading HTTP connections to WebSocket
WebSocketReceiver
Receiver half of a WebSocket stream
WebSocketSender
Sender half of a WebSocket stream
WebSocketStream
A WebSocket stream
WebSocketUpgrade
WebSocket upgrade response
WsCompressionConfig
Configuration for WebSocket compression
WsHeartbeatConfig
Configuration for WebSocket heartbeats

Enums§

CloseCode
WebSocket close codes
Message
WebSocket message type
WebSocketError
Error type for WebSocket operations