posixmq

A Rust library for working with posix message queues.

crates.io Build Status Documentation

rust let mq = posixmq::PosixMq::open("/queue")?; let mut buf = vec![0; mq.attributes().max_msg_size]; loop { let (priority, len) = mq.receive(&mut buf)?; println!("priority: {:3}, message: {}", priority, str::from_utf8(&buf[..len])?); }

Supported operating systems

Not all operating systems have posix message queues: Linux and most BSDs have them, but macOS, OpenBSD and Windows doesn't. See the crate documentation for details.

This library is tested to work on Linux and FreeBSD, but **has issues on NetBSD.

mio integration

On Linux and FreeBSD posix message queues can be polled, and therefore used with mio. This feature is not enabled by default; enable it in Cargo.toml with:

toml [dependencies] posixmq = {version="0.1", features=["mio"]}

Also remember to open the message queues in nonblocking mode.

Differences from posix_mq

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.