1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Unix domain socket networking primitives.
//!
//! This module provides async wrappers for Unix domain sockets, supporting both
//! filesystem path sockets and Linux abstract namespace sockets.
//!
//! # Socket Types
//!
//! - [`UnixListener`]: Accepts incoming Unix socket connections
//! - [`UnixStream`]: Bidirectional byte stream for client connections
//! - `UnixDatagram`: Connectionless datagram socket for local IPC
//!
//! # Example
//!
//! ```ignore
//! use asupersync::net::unix::{UnixListener, UnixStream, UnixDatagram};
//!
//! async fn server() -> std::io::Result<()> {
//! let listener = UnixListener::bind("/tmp/my_socket.sock").await?;
//!
//! loop {
//! let (stream, _addr) = listener.accept().await?;
//! // Handle connection...
//! }
//! }
//!
//! async fn client() -> std::io::Result<()> {
//! let stream = UnixStream::connect("/tmp/my_socket.sock").await?;
//! // Use stream...
//! Ok(())
//! }
//!
//! async fn datagram_example() -> std::io::Result<()> {
//! let (mut a, mut b) = UnixDatagram::pair()?;
//! a.send(b"hello").await?;
//! let mut buf = [0u8; 5];
//! let n = b.recv(&mut buf).await?;
//! Ok(())
//! }
//! ```
//!
//! # Platform Support
//!
//! Unix domain sockets are available on all Unix-like platforms. Abstract
//! namespace sockets (via [`UnixListener::bind_abstract`]) are Linux-only.
pub use ;
pub use UnixDatagram;
pub use ;
pub use ;
pub use ;