A pure Rust MQTT client library designed for simplicity, robustness, and high performance with an opinionated eventloop architecture.
Rumqtt is a pure Rust MQTT client library that implements the MQTT protocol for IoT and messaging applications. It provides a robust, high-performance client with an eventloop architecture to handle network I/O, automatic reconnections, and backpressure management, simplifying the development of reliable MQTT-based systems.
Developers building IoT applications, messaging systems, or embedded software in Rust who need a reliable and performant MQTT client with minimal boilerplate.
It offers an opinionated, eventloop-driven design that ensures robustness and performance out-of-the-box, with features like automatic reconnections, throttling, and backpressure management that reduce implementation complexity compared to lower-level MQTT libraries.
Pure rust mqtt cilent
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Publish and subscribe operations are non-blocking, allowing high throughput without waiting for acknowledgments, as emphasized in the README.
Limits inflight messages to prevent memory overflow and includes configurable throttling to avoid broker disconnections during message spikes, ensuring reliability.
Handles network disconnections automatically with user-configurable reconnection behavior, reducing implementation complexity for robust communication.
Supports JWT authentication for brokers like GCP IoT Core and TLS via RustTLS, simplifying secure integrations without external dependencies.
The repository is archived with no further development, meaning no new features, bug fixes, or security updates will be provided, posing a risk for long-term use.
Does not support cancelling MQTT will messages with disconnect packets, which is a standard feature in some MQTT implementations and might be required for specific use cases.
Spawns a dedicated eventloop thread, which may not align with applications preferring single-threaded models or different concurrency approaches, adding overhead for some environments.