SyMqtt 1.0.15
dotnet add package SyMqtt --version 1.0.15
NuGet\Install-Package SyMqtt -Version 1.0.15
<PackageReference Include="SyMqtt" Version="1.0.15" />
<PackageVersion Include="SyMqtt" Version="1.0.15" />
<PackageReference Include="SyMqtt" />
paket add SyMqtt --version 1.0.15
#r "nuget: SyMqtt, 1.0.15"
#:package SyMqtt@1.0.15
#addin nuget:?package=SyMqtt&version=1.0.15
#tool nuget:?package=SyMqtt&version=1.0.15
<p align="center"> <img src="./SyMqtt_logo.png" alt="SyMqtt Logo" width="180" /> </p>
<h1 align="center">SyMqtt</h1>
<p align="center"> <strong>High-level, high-performance .NET MQTT library built for synchronous Request-Response communication and effortless async messaging.</strong> </p>
<p align="center"> <img src="https://img.shields.io/badge/.NET-8.0-purple.svg" alt=".NET 8.0" /> <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /> </p>
<p align="center"> <a href="https://symqtt-docs.pages.dev/"><strong>📖 Read the full documentation</strong></a> </p>
SyMqtt is a high-performance, enterprise-ready messaging framework engineered to bring structure, reliability, and synchronous capabilities to MQTT-based ecosystems.
While the MQTT protocol is inherently asynchronous and generic, SyMqtt introduces a native, thread-safe Request-Response pattern and a strongly-typed functional topic architecture. It eliminates the endless boilerplate of manual topic routing, connection monitoring, and micro-controller payload parsing, allowing you to build robust industrial IoT networks using a clean, highly intuitive, and developer-friendly API.
🚀 Quick Start
Installation
Add the package to your project via the .NET CLI:
dotnet add package SyMqtt
✨ Key Features
- Synchronous over asynchronous: Implements a synchronous Request-Response pattern natively on top of the inherently asynchronous MQTT architecture.
- High-Level abstraction, low-level control: Abstracts complex MQTT transport mechanics while retaining full programmatic freedom to configure low-level network and connection parameters.
- Functional topic architecture: Packs raw topic strings into high-level, strongly-typed Topic Holders (Inbound/Outbound) and paired Channels organized by functionality.
- The SerialMessage convention: Uses a lightweight text envelope (
[Id],[Payload]) that avoids heavy JSON/XML processing by leveraging high-speed delimiter parsing. - Minimalist IoT device integration: The simple structured payload convention allows microcontrollers (Arduino, ESP32) to easily format and parse responses using standard, lightweight MQTT libraries.
- Centralized configuration: Complete topology management, client provisioning, and connection monitoring are managed entirely within the thread-safe
SyMqttBoxclass. - Fluent API support: Allows expressive, chainable Fluent API declarations to build entire communication networks, handlers, and connections in a single, scannable block.
- Defensive & fault-tolerant design: Prevents post-connection topology mutations, handles timeouts gracefully without leaking memory, and isolates user code exceptions within dedicated task frames to protect the underlying network client.
- Enterprise-grade security: Full, native control over network security, supporting custom TLS/SSL handshakes, credential management, and certificate validation.
- Non-blocking handler execution: Outbound responses and background asynchronous message processing are isolated using tasks, guaranteeing that high-load user logic never chokes the primary MQTT receive thread.
- Dynamic unicast destination routing: Supports dynamic point-to-point addressing via trailing token stamps (
TargetTopicSuffix), eliminating the need to declare separate channels for identical hardware nodes. - Protocol version flexibility: Fully supports MQTT v5, v3.1.1, and legacy v3.1.0 protocol versions. While the library defaults to v5 to leverage modern features, it allows explicit configuration for legacy environments. This prevents connection failures when integrating with older brokers that only understand v3 infrastructure.
📖 Full documentation
For complete step-by-step guides, API references, configuration workflows, and architectural design decisions, visit our official documentation site at SyMqtt documentation.
⚖️ License and Acknowledgments
SyMqtt is published under the MIT License.
To prevent version conflicts (Dependency Hell) in your applications, this package internalizes (repacks) the MQTTnet library developed by Christian Kratky and its contributors. We are deeply grateful to the MQTTnet authors for their outstanding work and contribution to the .NET ecosystem.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Cleaned up the internal protocol serialization by removing the obsolete Sense property from the SerialMessage envelope.