| 1 | #![ cfg(not(loom))] | 
| 2 |  | 
|---|
| 3 | //! TCP/UDP/Unix bindings for `tokio`. | 
|---|
| 4 | //! | 
|---|
| 5 | //! This module contains the TCP/UDP/Unix networking types, similar to the standard | 
|---|
| 6 | //! library, which can be used to implement networking protocols. | 
|---|
| 7 | //! | 
|---|
| 8 | //! # Organization | 
|---|
| 9 | //! | 
|---|
| 10 | //! * [`TcpListener`] and [`TcpStream`] provide functionality for communication over TCP | 
|---|
| 11 | //! * [`UdpSocket`] provides functionality for communication over UDP | 
|---|
| 12 | //! * [`UnixListener`] and [`UnixStream`] provide functionality for communication over a | 
|---|
| 13 | //! Unix Domain Stream Socket **(available on Unix only)** | 
|---|
| 14 | //! * [`UnixDatagram`] provides functionality for communication | 
|---|
| 15 | //! over Unix Domain Datagram Socket **(available on Unix only)** | 
|---|
| 16 | //! * [`tokio::net::unix::pipe`] for FIFO pipes **(available on Unix only)** | 
|---|
| 17 | //! * [`tokio::net::windows::named_pipe`] for Named Pipes **(available on Windows only)** | 
|---|
| 18 | //! | 
|---|
| 19 | //! For IO resources not available in `tokio::net`, you can use [`AsyncFd`]. | 
|---|
| 20 | //! | 
|---|
| 21 | //! [`TcpListener`]: TcpListener | 
|---|
| 22 | //! [`TcpStream`]: TcpStream | 
|---|
| 23 | //! [`UdpSocket`]: UdpSocket | 
|---|
| 24 | //! [`UnixListener`]: UnixListener | 
|---|
| 25 | //! [`UnixStream`]: UnixStream | 
|---|
| 26 | //! [`UnixDatagram`]: UnixDatagram | 
|---|
| 27 | //! [`tokio::net::unix::pipe`]: unix::pipe | 
|---|
| 28 | //! [`tokio::net::windows::named_pipe`]: windows::named_pipe | 
|---|
| 29 | //! [`AsyncFd`]: crate::io::unix::AsyncFd | 
|---|
| 30 |  | 
|---|
| 31 | mod addr; | 
|---|
| 32 | cfg_not_wasi! { | 
|---|
| 33 | #[ cfg(feature = "net")] | 
|---|
| 34 | pub(crate) use addr::to_socket_addrs; | 
|---|
| 35 | } | 
|---|
| 36 | pub use addr::ToSocketAddrs; | 
|---|
| 37 |  | 
|---|
| 38 | cfg_net! { | 
|---|
| 39 | mod lookup_host; | 
|---|
| 40 | pub use lookup_host::lookup_host; | 
|---|
| 41 |  | 
|---|
| 42 | pub mod tcp; | 
|---|
| 43 | pub use tcp::listener::TcpListener; | 
|---|
| 44 | pub use tcp::stream::TcpStream; | 
|---|
| 45 | cfg_not_wasi! { | 
|---|
| 46 | pub use tcp::socket::TcpSocket; | 
|---|
| 47 |  | 
|---|
| 48 | mod udp; | 
|---|
| 49 | #[doc(inline)] | 
|---|
| 50 | pub use udp::UdpSocket; | 
|---|
| 51 | } | 
|---|
| 52 | } | 
|---|
| 53 |  | 
|---|
| 54 | cfg_net_unix! { | 
|---|
| 55 | pub mod unix; | 
|---|
| 56 | pub use unix::datagram::socket::UnixDatagram; | 
|---|
| 57 | pub use unix::listener::UnixListener; | 
|---|
| 58 | pub use unix::stream::UnixStream; | 
|---|
| 59 | pub use unix::socket::UnixSocket; | 
|---|
| 60 | } | 
|---|
| 61 |  | 
|---|
| 62 | cfg_net_windows! { | 
|---|
| 63 | pub mod windows; | 
|---|
| 64 | } | 
|---|
| 65 |  | 
|---|