Awesome
<div align="center"> <img alt="rumqtt Logo" src="docs/rumqtt.png" width="60%" /> </div> <div align="center"> <a href="https://github.com/bytebeamio/rumqtt/actions/workflows/ci.yml"> <img alt="build status" src="https://github.com/bytebeamio/rumqtt/actions/workflows/ci.yml/badge.svg"> </a> <a href="https://coveralls.io/github/bytebeamio/rumqtt?branch=main"> <img src="https://coveralls.io/repos/github/bytebeamio/rumqtt/badge.svg?branch=main" alt="Coverage Status" /> </a> <a href="https://discord.gg/mpkSqDg"> <img alt="Discord chat" src="https://img.shields.io/discord/633193308033646605?style=flat"> </a> </div> <br/>What is rumqtt?
rumqtt is an opensource set of libraries written in rust-lang to implement the MQTT standard while striving to be simple, robust and performant.
Crate | Description | version |
---|---|---|
rumqttc | A high level, easy to use mqtt client | |
rumqttd | A high performance, embeddable MQTT broker |
Contents
Installation and Usage
rumqttd
Run using docker
rumqttd can be used with docker by pulling the image from docker hub as follows:
docker pull bytebeamio/rumqttd
To run rumqttd docker image you can simply run:
docker run -p 1883:1883 -p 1884:1884 -it bytebeamio/rumqttd
Or you can run rumqttd
with the custom config file by mounting the file and passing it as argument:
docker run -p 1883:1883 -p 1884:1884 -v /absolute/path/to/rumqttd.toml:/rumqttd.toml -it rumqttd -c /rumqttd.toml
<br/>
Prebuilt binaries
For prebuilt binaries checkout our releases, download suitable binary for your system and move it to any directory in your PATH.
<br/>Install using cargo
cargo install --git https://github.com/bytebeamio/rumqtt rumqttd
download the demo config file
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/bytebeamio/rumqtt/main/rumqttd/rumqttd.toml > rumqttd.toml
and run the broker using
rumqttd --config rumqttd.toml
Note: Make sure to you correct rumqttd.toml file for a specific version of rumqttd
<br/>Install using AUR
paru -S rumqttd-bin
replace paru
with whatever AUR helper you are using.
Note: Configuration is found in /etc/rumqtt/config.toml
and systemd service name rumqtt.service
Compile from source
Clone the repo using git clone.
git clone --depth=1 https://github.com/bytebeamio/rumqtt/
Change directory to that folder and run
cd rumqtt
cargo run --release --bin rumqttd -- -c rumqttd/rumqttd.toml -vvv
<br/>
for more information look at rumqttd's README
rumqttc
Add rumqttc to your project using
cargo add rumqttc
<br/>
for more information look at rumqttc's README
Features
<a id="rumqttd-1"></a> rumqttd
- MQTT 3.1.1
- QoS 0 and 1
- Connection via TLS
- Retransmission after reconnect
- Last will
- Retained messages
- QoS 2
- MQTT 5
<a id="rumqttc-1"></a> rumqttc
- MQTT 3.1.1
- MQTT 5
Community
Contributing
Please follow the code of conduct while opening issues to report bugs or before you contribute fixes, also do read our contributor guide to get a better idea of what we'd appreciate and what we won't.
License
This project is released under The Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)