1 unstable release
0.1.0 | Nov 15, 2024 |
---|
#2 in #mqtt5
145 downloads per month
82KB
1.5K
SLoC
Eclipse uProtocol Rust MQTT5 Client
Overview
This library implements a uTransport client for MQTT5 in Rust following the uProtocol uTransport Specifications.
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
~696K SLoC