A high-performance .NET library providing MQTT client and server (broker) implementations supporting MQTT protocol up to version 5.
MQTTnet is a high-performance .NET library that implements the MQTT protocol for communication between devices and applications. It provides both MQTT client and server (broker) components, supporting protocol versions up to 5, and solves the need for reliable, efficient messaging in IoT and other distributed systems.
.NET developers building IoT applications, messaging systems, or real-time communication solutions that require MQTT protocol support.
Developers choose MQTTnet for its high performance (processing ~150,000 messages/second), lightweight design with no external dependencies, and comprehensive support for MQTT features including TLS, WebSockets, and Azure IoT Hub compatibility.
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Processes approximately 150,000 messages per second in optimized scenarios, as verified in local tests with the TCP channel.
Implements MQTT protocol up to version 5 with a uniform API, ensuring compatibility across different client versions without fragmentation.
The ManagedMqttClient automatically handles connections, subscriptions, and message queuing for higher QoS levels, reducing boilerplate code.
Has no external dependencies and minimal overhead, making it easy to integrate into .NET projects without bloating the codebase.
Offers extensible communication channels and interfaces for custom credential validation and message interception, allowing tailored security and logic.
The server component lacks an administrative interface or dashboard, requiring developers to build custom tools for monitoring connected clients and messages.
Retained message persistence must be implemented via provided interfaces, as stated in the README, adding development overhead for data durability needs.
TLS support is not available for UWP servers, restricting secure communication in Universal Windows Platform applications without workarounds.
Features like custom message interceptors and subscription validation require deeper MQTT protocol knowledge, which can steepen the learning curve for novices.