Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fluffysquirrels/mqtt-async-client-rs
An MQTT client written in Rust
https://github.com/fluffysquirrels/mqtt-async-client-rs
Last synced: about 2 months ago
JSON representation
An MQTT client written in Rust
- Host: GitHub
- URL: https://github.com/fluffysquirrels/mqtt-async-client-rs
- Owner: fluffysquirrels
- License: mit
- Created: 2019-12-16T22:42:58.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-26T10:47:51.000Z (almost 2 years ago)
- Last Synced: 2024-09-18T00:26:06.719Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 321 KB
- Stars: 40
- Watchers: 3
- Forks: 16
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mqtt-async-client-rs
An MQTT 3.1.1 client written in Rust, using async functions and tokio.
* Repository:
* Documentation:
* Cargo crate:
* CI builds on Travis CI:Pull requests and Github issues welcome!
## To run automated tests
Simply run `cargo test`.
The integration tests require an MQTT broker to run against, see the
instructions in `${REPO}/tests/integration_test.rs`.## Run the test command-line app
Run `cargo run --example 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 --example mqttc -- --host localhost publish topic payload`
to publish payload `payload` to topic `topic`.Run `RUST_LOG="info" cargo run --example mqttc -- --host localhost subscribe topic`
to subscribe to topic `topic` and print any messages that are published to it.## Changelog
### Unpublished changes from 0.3.0 to `master`
* Add `--tls-client-crt-file` and `--tls-client-rsa-key-file` options to the example `mqttc`. Thanks to [marcelbuesing](https://github.com/marcelbuesing) for the PR!
* Remove `ClientBuilder.set_connection_mode`, which was unused. Thanks to [marcelbuesing](https://github.com/marcelbuesing) for the PR!### 0.3.0
* Add WebSocket support under Cargo feature "websocket".
* Switch `ClientBuilder` to use a URL instead of host and port. This was a breaking change to make it simple for consumers to switch protocol.Thanks to [JarredAllen](https://github.com/JarredAllen) for the implementation!
### 0.2.0
* Update `tokio` dependency to v1.2.0. Thanks to [marcelbuesing](https://github.com/marcelbuesing) for the PR!
### 0.1.7
* Implement `Debug` for `Client` and `ClientOptions`
* Reduce dependencies for faster and less fiddly builds: `env_logger`
and `structopt` are now dev-dependencies, `rustls` is now optional but
included by default as part of the `tls` feature.Thanks to [marcelbuesing](https://github.com/marcelbuesing) for the PRs!
### 0.1.6
* `Client` is `Send`.
### 0.1.5
* Correctly connect only once when automatic_connect is disabled.
### 0.1.4
* Missing ping responses should cause a disconnect even when keepalive > op timeout.
* Publish with retain flag.
### 0.1.3
* Added timeouts to disconnect, and publish when QoS=0.
### 0.1.2
* Enable automatic reconnects by default.
* This tracks subscriptions and replays them after reconnecting. No publish retries yet.