#mio #reactor #uds #std

async-net

Async networking primitives for TCP/UDP/Unix communication

18 stable releases

2.0.0 Oct 29, 2023
1.8.0 Sep 25, 2023
1.7.0 Aug 17, 2022
1.6.1 Jun 30, 2021
0.0.0 May 4, 2019

#20 in Network programming

Download history 273273/week @ 2025-09-23 276394/week @ 2025-09-30 276146/week @ 2025-10-07 259585/week @ 2025-10-14 272740/week @ 2025-10-21 294061/week @ 2025-10-28 303425/week @ 2025-11-04 294741/week @ 2025-11-11 288661/week @ 2025-11-18 194388/week @ 2025-11-25 274498/week @ 2025-12-02 458813/week @ 2025-12-09 353811/week @ 2025-12-16 124488/week @ 2025-12-23 174918/week @ 2025-12-30 383313/week @ 2026-01-06

1,114,760 downloads per month
Used in 883 crates (76 directly)

Apache-2.0 OR MIT

83KB
1K SLoC

async-net

Build License Cargo Documentation

Async networking primitives for TCP/UDP/Unix communication.

This crate is an async version of std::net and std::os::unix::net.

Implementation

This crate uses async-io for async I/O and blocking for DNS lookups.

Examples

A simple UDP server that echoes messages back to the sender:

use async_net::UdpSocket;

let socket = UdpSocket::bind("127.0.0.1:8080").await?;
let mut buf = vec![0u8; 1024];

loop {
    let (n, addr) = socket.recv_from(&mut buf).await?;
    socket.send_to(&buf[..n], &addr).await?;
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.7–7.5MB
~158K SLoC