# eclipse-paho/paho.mqtt.c

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/eclipse-paho-paho-mqtt-c).**

2,323 stars · 1,179 forks · C · NOASSERTION

## Links

- GitHub: https://github.com/eclipse-paho/paho.mqtt.c
- Homepage: https://eclipse.org/paho
- awesome-repositories: https://awesome-repositories.com/repository/eclipse-paho-paho-mqtt-c.md

## Topics

`eclipse-paho` `eclipseiot` `internet-of-things` `iot` `mqtt`

## Description

This project is a cross-platform C library designed for implementing MQTT messaging in applications. It serves as an asynchronous networking toolkit that enables resource-constrained systems and distributed components to exchange telemetry data and control signals with messaging brokers.

The library distinguishes itself through a state-machine-based protocol handler that manages connection lifecycles and persistent session states, ensuring reliable message delivery even during intermittent network connectivity. It utilizes a background thread to manage network operations, allowing applications to maintain responsiveness through a callback-driven notification system. Furthermore, the library features a pluggable transport abstraction that supports diverse communication channels, including TCP, TLS, and WebSockets, through a unified URI-based connection interface.

The software provides a comprehensive suite of messaging capabilities, including configurable quality of service levels, topic-based publishing and subscription, and the ability to attach metadata to messages. It also incorporates diagnostic tracing and runtime execution logging to assist in monitoring network activity and debugging protocol transitions.

## Tags

### Data & Databases

- [MQTT Broker Connections](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-connectivity/message-broker-connectivity/mqtt-broker-connections.md) — Establishes persistent connections to messaging brokers for reliable bidirectional data exchange. ([source](https://github.com/eclipse-paho/paho.mqtt.c/tree/master/android))
- [Transport Abstractions](https://awesome-repositories.com/f/data-databases/redis-clients/cluster-connectivity/message-broker-connectivity/mqtt-broker-connections/transport-abstractions.md) — Provides a pluggable transport abstraction to support diverse communication channels like TCP, TLS, and WebSockets via a unified interface. ([source](https://github.com/eclipse-paho/paho.mqtt.c/blob/master/README.md))

### Operating Systems & Systems Programming

- [C Libraries](https://awesome-repositories.com/f/operating-systems-systems-programming/c-libraries.md) — Implements a cross-platform C library for MQTT messaging with support for asynchronous operations and secure TLS connections.

### Networking & Communication

- [MQTT Clients](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/publish-subscribe-messaging/mqtt-clients.md) — Provides a C-based client implementation for communicating with messaging brokers to exchange telemetry data and control signals.
- [Message Delivery Guarantees](https://awesome-repositories.com/f/networking-communication/message-delivery-guarantees.md) — Configures specific delivery guarantees to ensure data reaches its destination according to the required reliability level. ([source](https://eclipse-paho.github.io/paho.mqtt.c/](https://eclipse-paho.github.io/paho.mqtt.c/))
- [Message Subscription Management](https://awesome-repositories.com/f/networking-communication/message-queue-clients/message-subscription-management.md) — Registers interest in specific message topics to receive real-time updates and control signals from a broker. ([source](https://eclipse-paho.github.io/paho.mqtt.c/MQTTClient/html/))
- [Connection State Management](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/connection-state-management.md) — Handles automatic reconnection and keep-alive heartbeats to ensure the client remains reachable during periods of network instability. ([source](https://eclipse-paho.github.io/paho.mqtt.c/](https://eclipse-paho.github.io/paho.mqtt.c/))
- [Protocol State Machines](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/connection-state-management/protocol-state-machines.md) — Manages MQTT connection lifecycles and packet sequencing through a formal state machine that tracks session persistence and delivery guarantees.
- [Topic-Based Messaging](https://awesome-repositories.com/f/networking-communication/topic-based-messaging.md) — Sends data packets to specific topics on a broker to distribute information to other connected clients or systems. ([source](https://eclipse-paho.github.io/paho.mqtt.c/MQTTClient/html/))
- [Asynchronous Network Frameworks](https://awesome-repositories.com/f/networking-communication/asynchronous-network-frameworks.md) — Provides a high-performance networking component for managing persistent connections and background message processing in event-driven C architectures.
- [Publish-Subscribe Systems](https://awesome-repositories.com/f/networking-communication/publish-subscribe-systems.md) — Facilitates seamless data exchange between independent software components by publishing and subscribing to specific topics across a messaging network.
- [Transport Abstractions](https://awesome-repositories.com/f/networking-communication/transport-abstractions.md) — Decouples the messaging protocol from the underlying network layer to support diverse transport mechanisms like TCP, TLS, and WebSockets.

### Security & Cryptography

- [Messaging Session Persistence](https://awesome-repositories.com/f/security-cryptography/identity-access-management/session-management/stateful-session-persistence/messaging-session-persistence.md) — Maintains client-side buffers and connection metadata to ensure reliable message delivery and automatic recovery during intermittent network connectivity.
- [Secure Network Communication](https://awesome-repositories.com/f/security-cryptography/secure-network-communication.md) — Establishes encrypted connections between distributed systems and messaging servers using TLS or SSL to protect sensitive data in transit.
- [Encrypted Communication Channels](https://awesome-repositories.com/f/security-cryptography/traffic-encryption/encrypted-communication-channels.md) — Establishes secure communication channels using standard encryption protocols to protect data in transit. ([source](https://github.com/eclipse-paho/paho.mqtt.c#readme))

### Part of an Awesome List

- [Embedded Frameworks](https://awesome-repositories.com/f/awesome-lists/devops/embedded-frameworks.md) — Offers a lightweight communication framework for integrating resource-constrained systems into distributed messaging infrastructures.

### Hardware & IoT

- [Connectivity And IoT Networks](https://awesome-repositories.com/f/hardware-iot/connectivity-iot.md) — Connects resource-constrained hardware to central infrastructure using reliable messaging protocols that handle intermittent network conditions.
- [IoT Message Ingestion](https://awesome-repositories.com/f/hardware-iot/iot-message-ingestion.md) — Provides a toolkit for building connected devices that exchange telemetry data with brokers using standard publish and subscribe messaging patterns.

### Software Engineering & Architecture

- [Asynchronous Messaging](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-messaging.md) — Performs network communication using non-blocking callbacks to maintain high responsiveness in event-driven applications. ([source](https://eclipse-paho.github.io/paho.mqtt.c/MQTTClient/html/))
- [Event-Driven Callbacks](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-callbacks.md) — Triggers user-defined functions upon the completion of network operations or the arrival of incoming messages to facilitate reactive programming.

### System Administration & Monitoring

- [Asynchronous Event Loops](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o/asynchronous-event-loops.md) — Implements a background thread to manage network I/O and protocol state machines without blocking the main application execution flow.

### User Interface & Experience

- [Asynchronous Network Callbacks](https://awesome-repositories.com/f/user-interface-experience/event-handling/asynchronous-network-callbacks.md) — Implements non-blocking messaging patterns in multi-threaded applications to maintain high responsiveness while managing background data flow.
