rumqtt is an open source set of Rust libraries for MQTT clients and packet handling, built to stay simple, robust, and performant.
| Package | Description | Version |
|---|---|---|
| rumqttc-next | Facade crate that re-exports the MQTT 5 client API | |
| rumqttc-v5-next | Explicit MQTT 5 client crate | |
| rumqttc-v4-next | Explicit MQTT 3.1.1 client crate | |
| rumqttc-core-next | Shared transport and connection plumbing for the client crates | |
| mqttbytes-core-next | Shared MQTT packet primitives for the client crates |
Optional file-backed implementations of the client-owned SessionStore APIs
are developed in the independent
session-store-file workspace. That workspace
contains a protocol-neutral filesystem core and one feature-gated MQTT 3.1.1
and MQTT 5 adapter package; it is not part of the client dependency graph.
rumqttc-next is a maintained fork of rumqtt with a variety of extra features.
The client crates are published with *-next package names on crates.io, but their Rust library target is
still named rumqttc. After adding a dependency, application code can use familiar imports such as
use rumqttc::MqttOptions;.
| Use case | Package |
|---|---|
| Default MQTT 5 client | rumqttc-next |
| Explicit MQTT 5 package name | rumqttc-v5-next |
| MQTT 3.1.1 client | rumqttc-v4-next |
Run one of these, depending on the protocol package you want:
# Default MQTT 5 client
cargo add rumqttc-next@0.34.0-alpha
# Explicit MQTT 5 package
cargo add rumqttc-v5-next@0.34.0-alpha
# MQTT 3.1.1 package
cargo add rumqttc-v4-next@0.34.0-alphaFor more details, see rumqttc-next/README.md, rumqttc-v5/README.md, and rumqttc-v4/README.md.
Existing upstream rumqttc users should start with the migration guide for package names,
API changes, and porting recipes.
Production deployment examples for TLS, WebSockets, proxies, persistent sessions, reconnect handling, bounded channels, manual ACKs, and broker-specific setup notes are in the recipe guide.
On Linux, both clients support opt-in Multipath TCP through
NetworkOptions::set_mptcp; see the MPTCP recipe.
- MQTT 5
- WebSocket transport
- TLS via rustls or native-tls
- MQTT 5 properties, reason codes, topic aliases, and enhanced auth hooks
- MQTT 3.1.1
- WebSocket transport
- TLS via rustls or native-tls
- Strict MQTT 3.1.1 codec validation
- MQTT 3.1.1 spec notes and requirement index (full compliance verification ongoing)
- MQTT 5.0 spec notes and requirement index (ongoing)
This project is released under The Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
