This library implements a uTransport client for MQTT5 in Rust following the uProtocol uTransport Specifications for spec version 1.6.0-alpha.4.
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.
To run the tests from the repo root directory, run
cargo test- 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_examplecargo run --example subscriber_exampleThis shows an example of a UPMqttClient publishing from one device and a UPMqttClient subscribing to the publishing device to receive data.
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.