mqrs/README.md

89 lines
2.5 KiB
Markdown
Raw Normal View History

2021-06-20 17:12:05 +02:00
# mqrs
`mqrs` is a small cli application to handle POSIX message queues.
## Installation
2021-06-20 17:39:22 +02:00
To build `mqrs` a rust toolchain is necessary.
2021-06-20 17:12:05 +02:00
### Install Rust
Install the Rust toolchain from [rustup.rs](https://rustup.rs).
### Build `mqrs`
`mqrs` can be built for development:
2021-06-20 17:39:22 +02:00
```sh
cargo b
2021-06-20 17:12:05 +02:00
```
or for releasing:
2021-06-20 17:39:22 +02:00
```sh
cargo b --release
```
### Build the `mqrs` Debian package
```sh
cargo deb
2021-06-20 17:12:05 +02:00
```
### Install `mqrs`
When a Rust toolchain installed you can also install `mqrs`
directly without cloning it manually:
``` sh
2021-06-20 17:39:22 +02:00
cargo install --git https://git.onders.org/finga/mqrs.git mqrs
2021-06-20 17:12:05 +02:00
```
or from within the project:
2021-06-20 17:39:22 +02:00
```sh
cargo install mqrs
2021-06-20 17:12:05 +02:00
```
### Run `mqrs`
`mqrs` can either be run from the project directory with:
2021-06-20 17:39:22 +02:00
```sh
cargo b
2021-06-20 17:12:05 +02:00
```
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`