Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chkr1011/MQTTnet
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/.
https://github.com/chkr1011/MQTTnet
anycpu broker communication csharp iot iot-framework iot-platform mqtt mqtt-broker mqtt-client mqtt-protocol mqtt-server net netcore netframework nuget tcp tls uwp
Last synced: 3 months ago
JSON representation
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/.
- Host: GitHub
- URL: https://github.com/chkr1011/MQTTnet
- Owner: dotnet
- License: mit
- Created: 2017-03-16T21:15:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-11T20:26:44.000Z (7 months ago)
- Last Synced: 2024-04-13T18:40:30.248Z (7 months ago)
- Topics: anycpu, broker, communication, csharp, iot, iot-framework, iot-platform, mqtt, mqtt-broker, mqtt-client, mqtt-protocol, mqtt-server, net, netcore, netframework, nuget, tcp, tls, uwp
- Language: C#
- Homepage:
- Size: 8.44 MB
- Stars: 4,190
- Watchers: 155
- Forks: 1,021
- Open Issues: 143
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
- awesome-dotnet-core - MQTTnet - MQTTnet是一个用于基于MQTT的通信的高性能.NET库。 (框架, 库和工具 / 消息队列)
- awesome-dotnet-core - MQTTnet - MQTTnet is a high performance .NET library for MQTT based communication. (Frameworks, Libraries and Tools / Queue and Messaging)
- awesome-dotnet-core - MQTTnet - MQTTnet is a high performance .NET library for MQTT based communication. (Frameworks, Libraries and Tools / Queue and Messaging)
- fucking-awesome-dotnet-core - MQTTnet - MQTTnet is a high performance .NET library for MQTT based communication. (Frameworks, Libraries and Tools / Queue and Messaging)
README
[![NuGet Badge](https://buildstats.info/nuget/MQTTnet)](https://www.nuget.org/packages/MQTTnet)
[![CI](https://github.com/dotnet/MQTTnet/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/dotnet/MQTTnet/actions/workflows/ci.yml)
[![MyGet](https://img.shields.io/myget/mqttnet/v/mqttnet?color=orange&label=MyGet-Preview)](https://www.myget.org/feed/mqttnet/package/nuget/MQTTnet)
![Size](https://img.shields.io/github/repo-size/dotnet/MQTTnet.svg)
[![Join the chat at https://gitter.im/MQTTnet/community](https://badges.gitter.im/MQTTnet/community.svg)](https://gitter.im/MQTTnet/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://raw.githubusercontent.com/dotnet/MQTTnet/master/LICENSE)# MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker) and supports the MQTT protocol up to version 5. It is compatible with mostly any supported .NET Framework version and CPU architecture.
## Features
### General
* Async support
* TLS support for client and server (but not UWP servers)
* Extensible communication channels (e.g. In-Memory, TCP, TCP+TLS, WS)
* Lightweight (only the low level implementation of MQTT, no overhead)
* Performance optimized (processing ~150.000 messages / second)*
* Uniform API across all supported versions of the MQTT protocol
* Access to internal trace messages
* Unit tested (~636 tests)
* No external dependencies\* Tested on local machine (Intel i7 8700K) with MQTTnet client and server running in the same process using the TCP channel. The app for verification is part of this repository and stored in _/Tests/MQTTnet.TestApp.NetCore_.
### Client
* Communication via TCP (+TLS) or WS (WebSocket) supported
* Included core _LowLevelMqttClient_ with low level functionality
* Also included _ManagedMqttClient_ which maintains the connection and subscriptions automatically. Also application messages are queued and re-scheduled for higher QoS levels automatically.
* Rx support (via another project)
* Compatible with Microsoft Azure IoT Hub### Server (broker)
* List of connected clients available
* Supports connected clients with different protocol versions at the same time
* Able to publish its own messages (no loopback client required)
* Able to receive every message (no loopback client required)
* Extensible client credential validation
* Retained messages are supported including persisting via interface methods (own implementation required)
* WebSockets supported (via ASP.NET Core 2.0, separate nuget)
* A custom message interceptor can be added which allows transforming or extending every received application message
* Validate subscriptions and deny subscribing of certain topics depending on requesting clients## Getting Started
MQTTnet is delivered via NuGet package manager. You can find the packages here: https://www.nuget.org/packages/MQTTnet/
Use these command in the Package Manager console to install MQTTnet manually:
```
Install-Package MQTTnet
```Samples for using MQTTnet are part of this repository. For starters these samples are recommended:
- [Connect with a broker](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Connection_Samples.cs)
- [Subscribing to data](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Subscribe_Samples.cs)
- [Publishing data](https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Publish_Samples.cs)
- [Host own broker](https://github.com/dotnet/MQTTnet/blob/master/Samples/Server/Server_Simple_Samples.cs)## Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).## .NET Foundation
This project is supported by the [.NET Foundation](https://dotnetfoundation.org).