17 releases (10 breaking)
| 0.11.2 | May 8, 2024 |
|---|---|
| 0.11.1 | Jan 14, 2024 |
| 0.10.0 | Jan 6, 2024 |
| 0.7.0 | Dec 27, 2023 |
| 0.4.0 | Jan 3, 2021 |
#645 in Asynchronous
413 downloads per month
2.5MB
65K
SLoC
This crate implements an async MQTT client using libmosquitto.
use mosquitto_rs::*;
fn main() -> Result<(), Error> {
smol::block_on(async {
let mut client = Client::with_auto_id()?;
let rc = client.connect(
"localhost", 1883,
std::time::Duration::from_secs(5), None).await?;
println!("connect: {}", rc);
let subscriptions = client.subscriber().unwrap();
client.subscribe("test", QoS::AtMostOnce).await?;
println!("subscribed");
client.publish("test", b"woot", QoS::AtMostOnce, false)
.await?;
println!("published");
if let Ok(msg) = subscriptions.recv().await {
println!("msg: {:?}", msg);
}
Ok(())
})
}
Features
The following feature flags are available:
router- include the router module andMqttRoutertype. This is on by default.vendored-mosquitto- use bundled libmosquitto 2.4 library. This is on by default.vendored-mosquitto-tls- enable tls support in the bundled libmosquitto. This is on by default.vendored-openssl- build openssl from source, rather than using the system library. Recommended for macOS and Windows users to enable this.
An async MQTT client
This crate implements an async MQTT client using libmosquitto.
use mosquitto_rs::*;
fn main() -> Result<(), Error> {
smol::block_on(async {
let mut mosq = Client::with_auto_id()?;
let rc = mosq.connect("localhost", 1883, std::time::Duration::from_secs(5), None).await?;
println!("connect: {}", rc);
let subscriptions = mosq.subscriber().unwrap();
mosq.subscribe("test", QoS::AtMostOnce).await?;
println!("subscribed");
mosq.publish("test", b"woot", QoS::AtMostOnce, false)
.await?;
println!("published");
if let Ok(msg) = subscriptions.recv().await {
println!("msg: {:?}", msg);
}
Ok(())
})
}