bytebeamio/rumqttd
A high performance MQTT broker written in Rust which is light weight and embeddable.
50K+
rumqttd is a high performance MQTT broker written in Rust which is light weight and embeddable allowing you to use it as a library in your code and extend functionality.
rumqttd can be used with docker by pulling the image from docker hub as follows:
docker pull bytebeamio/rumqttd
To use the rumqttd docker image with the included demo.toml
while exposing the necessary ports for clients to interact with the broker, use the following command:
docker run -p 1883:1883 -p 1884:1884 -it bytebeamio/rumqttd -c demo.toml
One can also mount the local directory containing configs as a volume and use the appropriate config file as follows:
docker run -v /path/to/configs:/configs -p 1883:1883 -it bytebeamio/rumqttd -c /configs/config.toml
To connect an MQTT client with rumqttd over TLS, create relevant certificates for the broker and client using provision as follows:
provision ca // generates ca.cert.pem and ca.key.pem
provision server --ca ca.cert.pem --cakey ca.key.pem --domain localhost // generates localhost.cert.pem and localhost.key.pem
provision client --ca ca.cert.pem --cakey ca.key.pem --device 1 --tenant a // generates 1.cert.pem and 1.key.pem
Update config file for rumqttd with the generated certificates(NOTE: ensure the path provided is mounted with the docker container appropriately):
[v4.2.tls]
certpath = "path/to/localhost.cert.pem"
keypath = "path/to/localhost.key.pem"
capath = "path/to/ca.cert.pem"
You may also use certgen, tls-gen or openssl to generate self-signed certificates, though we recommend using provision.
NOTE: Mount the folders containing the generated tls certificates and the proper config file(with absolute paths to the certificate) to enable tls connections with rumqttd running inside docker.
docker pull bytebeamio/rumqttd