awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
mcxiaoke avatar

mcxiaoke/mqtt

0
View on GitHub↗
5,195 stars·1,236 forks·Rich Text Format·4 viewsmcxiaoke.gitbook.io/mqtt↗

Mqtt

This project provides a technical specification and reference manual for the MQTT 3.1.1 standard, serving as a translated Chinese guide for implementing this lightweight IoT messaging protocol in resource-constrained device networks.

The documentation covers the fundamental mechanisms of the publish-subscribe model, including topic-based routing with wildcard filtering, retained message storage, and the configuration of last will and testament messages. It details the protocol's approach to reliability through various quality of service levels, ranging from single-level acknowledgments to exactly-once delivery confirmations.

The reference material further describes session management for persisting client state across reconnections, connection lifecycle handling with heartbeat monitoring, and security measures such as client authentication, data encryption, and anomaly detection. It also specifies data encoding standards, including big-endian byte ordering and UTF-8 string validation, as well as transport options like binary WebSocket wrapping.

Features

  • Quality of Service Implementations - Distributes application messages using multiple quality-of-service levels to balance reliability and network overhead.
  • Topic-Based Pub/Sub - Implements a core publish-subscribe architecture using topic strings and wildcard filtering for message routing.
  • Publishers - Provides detailed specifications for publishing payloads to MQTT topics with configurable quality-of-service levels.
  • Lightweight Messaging Protocols - Provides a technical specification for a lightweight publish-subscribe messaging protocol optimized for IoT environments.
  • Control Packet Exchanges - Defines the structured control packets used to manage communication and state between MQTT clients and servers.
  • MQTT Message Acknowledgements - Ships a detailed specification for MQTT-specific acknowledgments with reason codes to confirm high-reliability message reception.
  • MQTT Protocol Versions - Provides a detailed reference manual covering packet formats, QoS levels, and connection handshakes for MQTT.
  • Message Delivery Guarantees - Tracks transmissions using identifiers and duplicate flags to guarantee delivery at different reliability levels.
  • Exactly-Once Delivery Guarantees - Implements high-reliability delivery confirmation using a four-way handshake to ensure exactly-once delivery.
  • QoS Retransmission Engines - Details the multi-level quality of service handshaking and acknowledgment sequences to guarantee message delivery reliability.
  • Protocol Acknowledgements - Defines the use of confirmation packets and message identifiers to signal the completion of single-level delivery.
  • Protocol Specifications - Serves as a comprehensive translated Chinese reference of the MQTT 3.1.1 standard.
  • Session State Management - Maintains session data between clients and servers to guarantee service quality across network reconnections.
  • Session Restoration - Restores communication state using unique client identifiers to maintain connectivity after network interruptions.
  • Topic-Based Messaging - Implements a system for exchanging messages categorized by topics to allow filtered delivery based on matching criteria.
  • Topic Subscription Management - Specifies how clients register topic filters and manage memberships to receive matching application messages.
  • MQTT Credential Validators - Validates client IDs, usernames, and passwords during the connection handshake to ensure only authorized users connect.
  • Client Access Authorizations - Restricts access to topics and resources based on client identifiers, IP addresses, and authentication results.
  • Messaging Session Persistence - Provides mechanisms to persist client subscriptions and unacknowledged messages across reconnections using unique identifiers.
  • Packet Framing Protocols - Defines structured packet framing with length prefixes and headers to delineate discrete messages in a byte stream.
  • Packet Identifiers - Assigns unique identifiers to packets to guarantee reliable delivery and acknowledgement across service levels.
  • Length-Delimited Encodings - Uses length-delimited encoding with a continuation-bit scheme to represent packet sizes up to 256MB.
  • Variable-Width Integer Encodings - Utilizes a continuation-bit scheme for variable-length integer encoding to optimize packet header size.
  • Node Availability Verification - Confirms server activity through responses to heartbeat requests to maintain the active network link.
  • Topic Subscribers - Provides support for matching published messages to subscribers using wildcard characters in topic filters.
  • Retained Messages - Defines the mechanism for storing and delivering the most recent state to new subscribers via retained messages.
  • Connection Establishment Protocols - Defines the request and acknowledgment packet sequence used to initiate and confirm communication sessions.
  • Graceful Connection Shutdowns - Provides a specific disconnect packet to ensure the graceful termination of the client-server session.
  • Subscription Acknowledgments - Provides a mechanism for the server to confirm the processing of subscription requests and granted QoS levels.
  • Topic Unsubscriptions - Defines the protocol exchange for removing topic filters from a client session.
  • Message Ordering Guarantees - Ensures that messages and acknowledgments are sent and received in their original sequence for ordered topics.
  • Last Will and Testament Messages - Implements the last will and testament mechanism to notify other clients of unexpected device disconnections.
  • Application-Level Connection Acceptance - Implements protocol-level validation to accept or reject connections based on version, identity, and authorization.
  • WebSocket Transports - Enables communication over web-compatible connections by wrapping protocol packets in binary WebSocket frames.
  • Client Authentications - The MQTT protocol verifies client identities using credentials, certificates, or external systems to ensure secure access.
  • Cryptographic Identity Verification - Confirms server identity using certificates or secure tunnels to ensure clients connect to the intended endpoint.
  • Data Encryption - Secures communication and static data through cryptographic encryption to prevent unauthorized access.
  • Anomaly Detection - Monitors network traffic for anomalies like topic scanning or connection flooding to proactively disconnect malicious clients.
  • Connection Heartbeats - Implements keep-alive intervals with ping and pong packets to monitor and maintain network connection liveness.

Star history

Star history chart for mcxiaoke/mqttStar history chart for mcxiaoke/mqtt

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does mcxiaoke/mqtt do?

This project provides a technical specification and reference manual for the MQTT 3.1.1 standard, serving as a translated Chinese guide for implementing this lightweight IoT messaging protocol in resource-constrained device networks.

What are the main features of mcxiaoke/mqtt?

The main features of mcxiaoke/mqtt are: Quality of Service Implementations, Topic-Based Pub/Sub, Publishers, Lightweight Messaging Protocols, Control Packet Exchanges, MQTT Message Acknowledgements, MQTT Protocol Versions, Message Delivery Guarantees.

What are some open-source alternatives to mcxiaoke/mqtt?

Open-source alternatives to mcxiaoke/mqtt include: dotnet/mqttnet — MQTTnet is a comprehensive MQTT library for .NET that supports both client and broker roles in a single codebase. It… eclipse-paho/paho.mqtt.java — This project is a Java messaging software development kit designed to facilitate real-time data exchange between… nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge… chkr1011/mqttnet — MQTTnet is a .NET library providing a framework for implementing MQTT clients and brokers. It includes a broker… jackjiang2011/mobileimsdk — MobileIMSDK is an open-source instant messaging framework that provides reliable real-time message delivery across… eclipse-paho/paho.mqtt.c — This project is a cross-platform C library designed for implementing MQTT messaging in applications. It serves as an…

Open-source alternatives to Mqtt

Similar open-source projects, ranked by how many features they share with Mqtt.
  • dotnet/mqttnetdotnet avatar

    dotnet/MQTTnet

    4,949View on GitHub↗

    MQTTnet is a comprehensive MQTT library for .NET that supports both client and broker roles in a single codebase. It provides a full-featured broker implementation capable of hosting a server with access control, message interception, session persistence, and support for mixed MQTT protocol versions. The client side offers robust publish-subscribe communication with automatic reconnection that preserves quality-of-service guarantees, ensuring reliable message delivery across network interruptions. The library distinguishes itself with a plugin-based authentication pipeline for validating clie

    C#anycpubrokercommunication
    View on GitHub↗4,949
  • eclipse-paho/paho.mqtt.javaeclipse-paho avatar

    eclipse-paho/paho.mqtt.java

    2,293View on GitHub↗

    This project is a Java messaging software development kit designed to facilitate real-time data exchange between applications and message brokers. It functions as an MQTT client library, providing the necessary tools to implement publish-and-subscribe messaging patterns within distributed systems and internet-connected device environments. The library distinguishes itself through its focus on resilient network connectivity and reliable message delivery. It manages persistent connections through internal state machines that handle automatic reconnection and keep-alive heartbeats, ensuring stab

    Javaeclipseiotinternet-of-thingsiot
    View on GitHub↗2,293
  • nats-io/nats-servernats-io avatar

    nats-io/nats-server

    20,076View on GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    Gocloudcloud-computingcloud-native
    View on GitHub↗20,076
  • chkr1011/mqttnetchkr1011 avatar

    chkr1011/MQTTnet

    5,011View on GitHub↗

    MQTTnet is a .NET library providing a framework for implementing MQTT clients and brokers. It includes a broker implementation for hosting a central message hub that routes messages between connected clients and a client library for publishing and subscribing to messages. The project supports both TCP and WebSocket transport layers, enabling secure data traffic through transport layer security. It allows for the development of custom middleware to intercept, transform, or validate messages as they pass through a server. Capability areas include distributed message routing, persistent connect

    C#
    View on GitHub↗5,011
See all 30 alternatives to Mqtt→