Home

Awesome

Leptos Websocket

Crates.io docs.rs

Leptos Websocket provides server signals for Leptos, keeping them in sync with the server through WebSockets. This enables real-time updates on the UI controlled by the server.

Features

Installation

Add the following to your Cargo.toml:

[dependencies]
leptos_ws = "0.7.0"
serde = { version = "1.0", features = ["derive"] }

[features]
ssr = ["leptos_ws/ssr", "leptos_ws/axum"]

Usage

Client-side

use leptos::prelude::*;
use serde::{Deserialize, Serialize};

#[component]
pub fn App() -> impl IntoView {
    // Connect to WebSocket
    leptos_ws::provide_websocket("http://localhost:3000/ws");

    // Create server signal
    let count = leptos_ws::ServerSignal::new("count".to_string(), 0 as i32).unwrap();

    view! {
        <h1>"Count: " {move || count.get().to_string()}</h1>
    }
}

Server-side (Axum)

Server-side implementation requires additional setup. Refer to the example for detailed examples.

Feature Flags

Documentation

For more detailed information, check out the API documentation.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.