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, enabling developers to build scalable IoT systems, real-time messaging solutions, and data pipelines with support for MQTT up to version 5.
.NET developers building IoT applications, real-time messaging systems, or embedded solutions requiring MQTT protocol communication.
Developers choose MQTTnet for its high performance, lightweight design, and comprehensive feature set—including managed client automation, extensible server capabilities, and broad .NET compatibility—without external dependencies.
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.
Benchmarks show it processes approximately 150,000 messages per second in optimized scenarios, as stated in the README, making it suitable for high-throughput IoT and messaging systems.
Implements MQTT up to version 5 with a uniform API across versions, ensuring compatibility with modern devices and future-proofing applications.
Supports TCP, TCP+TLS, WebSocket, and in-memory channels for both client and server, allowing deployment in diverse network environments from local to web-based.
The ManagedMqttClient automatically handles connections, subscriptions, and message queuing for higher QoS levels, reducing boilerplate code for reliable communication.
TLS support is not available for UWP servers, as the README admits, restricting secure communication options on Universal Windows Platform deployments.
Server-side WebSocket support requires a separate NuGet package and ASP.NET Core 2.0, adding complexity and potential versioning issues to the setup.
Retained message persistence needs a custom implementation via provided interfaces, which can be a burden for developers seeking out-of-the-box solutions.