mqrs/README.md

2.5 KiB

mqrs

mqrs is a small cli application to handle POSIX message queues.

Installation

To build mqrs a rust toolchain is necessary.

Install Rust

Install the Rust toolchain from rustup.rs.

Build mqrs

mqrs can be built for development:

cargo b

or for releasing:

cargo b --release

Build the mqrs Debian package

cargo deb

Install mqrs

When a Rust toolchain installed you can also install mqrs directly without cloning it manually:

cargo install --git https://git.onders.org/finga/mqrs.git mqrs

or from within the project:

cargo install mqrs

Run mqrs

mqrs can either be run from the project directory with:

cargo b

or you can copy the produced binary somewhere else or link to them from target/{debug,release}/mqrs depending on which one you built.

Using mqrs

mqrs supports five commands: create, info, unlink, send and receive. All commands do not have to be specified fully. If the command is clearly distinguishable from all the others, it does not have to be completed further.

Create a message queue

Use the create command to create a new POSIX message queue. Following optional arguments are supported:

  • -c, --capacity: Maximum number of messages in the queue
  • -p, --permissions: Permissions (octal) to create the queue with
  • -s, --msgsize: Message size in bytes

Print information about a message queue

Use the info command to print further information about a message queue.

Delete a message queue

Use the unlink command to delete a message queue.

Send a message to a queue

Use the send command to send a message to a message queue. Following optional arguments are supported:

  • -n, --non-blocking: Do not block
  • -d, --deadline <deadline>: Deadline until messages are sent (format: %Y-%m-%d %H:%M:%S)
  • -p, --priority <priority>: Use priority PRIO, PRIO >= 0 [default: 0]
  • -o, --timeout <timeout>: Timeout in <timeout>[s] (default) or <timeout>ms

Receive a message from a queue

Use the recv command to receive one or more messages from a message queue. Following optional arguments are supported:

  • -f, --follow: Print messages as they are received
  • -n, --non-blocking: Do not block
  • -t, --timestamp: Print a timestamp before each message
  • -d, --deadline <deadline>: Deadline until messages are received (format: %Y-%m-%d %H:%M:%S)
  • -o, --timeout <timeout>: Timeout in <timeout>[s] (default) or <timeout>ms