2 unstable releases

0.2.0 Nov 21, 2023
0.1.0 Nov 18, 2023

#1613 in Network programming

Download history 375/week @ 2024-01-06 373/week @ 2024-01-13 565/week @ 2024-01-20 190/week @ 2024-01-27 168/week @ 2024-02-03 215/week @ 2024-02-10 128/week @ 2024-02-17 137/week @ 2024-02-24 61/week @ 2024-03-02 53/week @ 2024-03-09 51/week @ 2024-03-16 24/week @ 2024-03-23 95/week @ 2024-03-30 23/week @ 2024-04-06 235/week @ 2024-04-13 11/week @ 2024-04-20

364 downloads per month
Used in 2 crates (via atm0s-media-server-transp…)

MIT license

21KB
382 lines

udp_sas_async

Crates.io

This project implement async support with both tokio or async_std for udp_sas crate (https://crates.io/crates/udp_sas)

Example with tokio

use udp_sas_async::tokio::UdpSocketSas;

#[tokio::main]
async fn main() {
    let socket = UdpSocketSas::bind("0.0.0.0:0".parse().unwrap()).unwrap();
    println!("Running port on 0.0.0.0:{}", socket.local_port());
    let mut buf = [0; 1500];
    while let Ok((size, remote, dest)) = socket.recv_sas(&mut buf).await {
        println!("received {} from {} to {}", size, remote, dest);
        socket.send_sas(&buf[..size], dest, remote).await.unwrap();
    }
}

Example with async_std

use udp_sas_async::async_std::UdpSocketSas;

#[tokio::main]
async fn main() {
    let socket = UdpSocketSas::bind("0.0.0.0:0".parse().unwrap()).unwrap();
    println!("Running port on 0.0.0.0:{}", socket.local_port());
    let mut buf = [0; 1500];
    while let Ok((size, remote, dest)) = socket.recv_sas(&mut buf).await {
        println!("received {} from {} to {}", size, remote, dest);
        socket.send_sas(&buf[..size], dest, remote).await.unwrap();
    }
}

Dependencies

~0–12MB
~115K SLoC