2 unstable releases
0.2.0 | Dec 16, 2024 |
---|---|
0.1.0 | Nov 15, 2024 |
#2 in #mqtt5
78 downloads per month
83KB
1.5K
SLoC
Eclipse uProtocol Rust MQTT5 Client
Overview
This library implements a uTransport client for MQTT5 in Rust following the uProtocol uTransport Specifications for spec version 1.6.0-alpha.4.
Getting Started
Building the Library
To build the library, run cargo build
in the project root directory. Tests can be run with cargo test
. This library leverages the up-rust library for data types and models specified by uProtocol.
Running the Tests
To run the tests from the repo root directory, run
cargo test
Running the Examples
- Start an MQTT broker or use the included Mosquitto broker:
cd tests/mosquitto
docker compose up
- Set up your environment (for example with a config file at .cargo/config.toml)
Make sure to set these parameters:
[env]
MQTT_PROTOCOL = "'mqtt' or 'mqtts'"
MQTT_PORT = "8883 for ssl encrypted mqtt"
MQTT_HOSTNAME = "the hostname/ url of the broker"
KEY_STORE = "the .pem file location corresponding to an ssl certificate (if using mqtts)"
PRIVATE_KEY_PW = "the password to the .pem file (if using mqtts)"
CLIENT_NAME = "the name of the eventgrid client (if using mqtts)"
- Start the following two examples from your repo root directory.
cargo run --example publisher_example
cargo run --example subscriber_example
This shows an example of a UPMqttClient publishing from one device and a UPMqttClient subscribing to the publishing device to receive data.
Using the Library
The library contains the following modules:
Package | uProtocol spec | Purpose |
---|---|---|
transport | uP-L1 Specifications | Implementation of MQTT5 uTransport client used for bidirectional point-2-point communication between uEs. |
Please refer to the publisher_example and subscriber_example examples to see how to initialize and use the UPClientMqtt client.
Dependencies
~25–41MB
~699K SLoC