Expand description
§udp_server
High-performance async UDP server framework built on Tokio.
§Design
The framework binds multiple UDP sockets to the same address (leveraging
SO_REUSEPORT on Unix for kernel-level load balancing). Each remote address
is abstracted as a [UdpPeer] with its own send/receive channel and a
dedicated handler task. Users provide a single async closure — the framework
handles socket lifecycle, peer creation/removal, and idle timeout cleanup.
§Quick Example
use udp_server::prelude::UdpServer;
UdpServer::new("0.0.0.0:20001", |peer, mut reader, _| async move {
while let Some(Ok(data)) = reader.recv().await {
peer.send(&data).await?;
}
Ok(())
})?
.set_peer_timeout_sec(20)
.start(())
.await?;Modules§
- prelude
- Convenience re-exports so users can write
use udp_server::prelude::*.