Skip to main content

Crate ws_kit

Crate ws_kit 

Source
Expand description

§ws-kit

Generic authenticated typed WebSocket toolkit.

Provides:

§Quick start

use ws_kit::{config::WsConfig, hub::BroadcastHub, room::RoomManager, codec::Codec};
use serde::{Serialize, Deserialize};

#[derive(Clone, Serialize, Deserialize, Debug, PartialEq)]
struct ChatMsg { user: String, body: String }

let hub = BroadcastHub::<ChatMsg>::new(1024);
let mut rx = hub.subscribe();
hub.broadcast(ChatMsg { user: "alice".into(), body: "hi".into() }).unwrap();
let msg = rx.recv().await.unwrap();
assert_eq!(msg.user, "alice");

§Features

  • std (default): enables std support for thiserror.
  • axum (default): enables axum WebSocket and tower deps, and TokenExtractor::extract_token(&Parts, _)
  • tracing: enables tracing instrumentation.

Re-exports§

pub use codec::Codec;
pub use codec::JsonCodec;
pub use config::WsConfig;
pub use config::WsConfigBuilder;
pub use error::WsError;
pub use extractor::TokenExtractor;
pub use extractor::TokenSourceKind;
pub use extractor::WsAuthError;
pub use hub::BroadcastHub;
pub use room::Room;
pub use room::RoomManager;

Modules§

codec
Message codec.
config
Configuration for WebSocket infrastructure.
error
Error types for ws-kit.
extractor
Token extraction for WebSocket authentication.
hub
Generic broadcast hub.
room
Room-based group messaging.