Skip to content

Key features of SyMqtt library

  • 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 SyMqttBox class.
  • 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 tokens (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.