This library implements a uTransport client for MQTT5 in Rust following the uProtocol uTransport Specifications.
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_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.
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.