| Crates.io | ferro-broadcast |
| lib.rs | ferro-broadcast |
| version | 0.1.71 |
| created_at | 2026-01-16 17:13:45.71451+00 |
| updated_at | 2026-01-17 20:04:46.49432+00 |
| description | WebSocket broadcasting and real-time channels for Ferro framework |
| homepage | |
| repository | https://github.com/albertogferrario/ferro |
| max_upload_size | |
| id | 2048982 |
| size | 56,550 |
WebSocket broadcasting and real-time channels for the Ferro framework.
use ferro_broadcast::{Broadcast, Broadcaster};
use std::sync::Arc;
// Create a broadcaster
let broadcaster = Arc::new(Broadcaster::new());
// Broadcast to a public channel
Broadcast::new(broadcaster.clone())
.channel("orders")
.event("OrderCreated")
.data(&order)
.send()
.await?;
// Broadcast to a private channel
Broadcast::new(broadcaster.clone())
.channel("private-orders.1")
.event("OrderUpdated")
.data(&order)
.send()
.await?;
Channels are determined by their name prefix:
orders - Public channelprivate-orders.1 - Private channel (requires auth)presence-chat.1 - Presence channel (tracks members)use ferro_broadcast::{AuthData, ChannelAuthorizer};
struct MyAuthorizer;
#[async_trait::async_trait]
impl ChannelAuthorizer for MyAuthorizer {
async fn authorize(&self, data: &AuthData) -> bool {
// Verify user can access channel
verify_user_access(&data.channel, &data.auth_token)
}
}
MIT