A CLI for diffent kinds of message queues.
Go to file
finga 07decf7b36 Add debian package build information in readme
Add prerequisites for building a debian package.
2021-07-07 19:30:18 +02:00
.gitea/issue_template Issue templates for gitea 2021-06-20 18:16:19 +02:00
src Refactor commands to support different backends 2021-07-07 19:19:19 +02:00
.gitignore Initial commit 2021-06-14 03:05:23 +02:00
Cargo.lock Refactor logging 2021-07-07 17:13:08 +02:00
Cargo.toml Refactor logging 2021-07-07 17:13:08 +02:00
mqrs.1 Refactor commands to support different backends 2021-07-07 19:19:19 +02:00
README.md Add debian package build information in readme 2021-07-07 19:30:18 +02:00

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

For that cargo-deb is required, which can be installed with:

cargo install cargo-deb

A Debian package can be built with:

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

Depending on which backend you want to use there are different subsets of subcommands. Following backends are supported:

  • posix: Uses POSIX message queues
  • sysv: Uses SysV IPC message queues

If a command is clearly distinguishable from all the others, it does not have to be completed further.

POSIX message queues

The POSIX backend supports six commands: create, info, list, unlink, send and recv.

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.

List all message queues

Use the list command to print a list of all message queues. Following option argument is supported:

  • -a, --all: Print all available information

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>: Set a different priority than default, priority >= 0 [default: 0]
  • -o, --timeout <timeout>: As for example in "5h 23min 42ms"

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>: As for example in "5h 23min 42ms"

SysV IPC message queues

The SysV IPC backend supports no commands yet.