GitXplorerGitXplorer
d

MQTTnet

public
4549 stars
1080 forks
187 issues

Commits

List of commits on branch master.
Verified
24c418cf4312635c8a93d91be55cd7d58c027683

Update README.md

cchkr1011 committed 11 days ago
Verified
948c7c2b690536742a236cba662b6f7efb43fd2b

Corrected Cancellation Source for KeepAlive Messages (#2129)

EErw1nT committed 16 days ago
Unverified
1cdc343e6d6f81726e11e0be986f1e7a5b67e075

Update release notes

cchkr1011 committed 16 days ago
Verified
27771f0146c9e555d8ae2a47b9ab8fc966fc9549

Improve session message injection (#2117)

AAntonSmolkov committed 16 days ago
Unverified
e7de2b913ac66ac0b2a8b317cc8d21ab06bf4034

Increase version

cchkr1011 committed 16 days ago
Unverified
3dd3279656e49240b898943da81b4b560bcb87e1

Fix missing release notes in nuget package

cchkr1011 committed 16 days ago

README

The README file for this repository.


NuGet Badge CI MyGet Size Join the chat at https://gitter.im/MQTTnet/community License: MIT

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:

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.

.NET Foundation

This project is supported by the .NET Foundation.