socketpair

Crates.iosocketpair
lib.rssocketpair
version0.19.5
sourcesrc
created_at2021-01-12 20:26:35.225135
updated_at2024-03-29 20:41:42.135214
descriptionCross-platform socketpair functionality
homepage
repositoryhttps://github.com/sunfishcode/socketpair
max_upload_size
id341061
size91,643
Dan Gohman (sunfishcode)

documentation

README

socketpair

Cross-platform socketpair functionality

Github Actions CI Status crates.io page docs.rs docs

This crate wraps socketpair with AF_UNIX platforms, and emulates this interface using CreateNamedPipe on Windows.

It has a "stream" interface, which corresponds to SOCK_STREAM and PIPE_TYPE_BYTE, and a "seqpacket" interface, which corresponds to SOCK_SEQPACKET and PIPE_TYPE_MESSAGE.

Example

let (mut a, mut b) = socketpair_stream()?;

writeln!(a, "hello world")?;

let mut buf = [0_u8; 4096];
let n = b.read(&mut buf)?;
assert_eq!(str::from_utf8(&buf[..n]).unwrap(), "hello world\n");

Support for async-std and tokio is temporarily disabled until those crates contain the needed implementations of the I/O safety traits.

Commit count: 118

cargo fmt