An MQTT 3.1.1 client written in Rust, using async functions and tokio.
Pull requests and Github issues welcome!
Simply run cargo test
.
The integration tests require an MQTT broker to run against, see the
instructions in ${REPO}/tests/integration_test.rs
.
Run cargo run --bin mqttc
to print usage.
The test app requires an MQTT broker to run against, see the
instructions in ${REPO}/tests/integration_test.rs
.
Run cargo run --bin mqttc -- --host localhost publish topic payload
to publish payload payload
to topic topic
.
Run RUST_LOG="info" cargo run --bin mqttc -- --host localhost subscribe topic
to subscribe to topic topic
and print any messages that are published to it.
Correctly connect only once when automatic_connect is disabled.
Missing ping responses should cause a disconnect even when keepalive > op timeout.
Publish with retain flag.
Added timeouts to disconnect, and publish when QoS=0.
Enable automatic reconnects by default.
This tracks subscriptions and replays them after reconnecting. No publish retries yet.