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 |
#435 in Asynchronous
122 downloads per month
2.5MB
64K
SLoC
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(())
})
}
lib.rs
:
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 andMqttRouter
type. 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.