awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
knolleary avatar

knolleary/pubsubclient

0
View on GitHub↗
4,010 stars·1,506 forks·C++·MIT·16 viewspubsubclient.knolleary.net↗

Pubsubclient

This project is a lightweight MQTT client library for Arduino boards, specifically designed for embedded systems utilizing an Ethernet Shield. It functions as an embedded messaging client that allows hardware devices to publish and subscribe to topics on a remote message broker.

The library provides core MQTT integration, including broker connection management and the maintenance of server heartbeats. It supports topic-based message publishing and subscription management, enabling the registration of listeners to trigger functions upon message arrival.

The system covers network connection configuration, such as buffer sizes and socket timeouts, alongside client state monitoring to identify failed connection attempts. It implements a non-blocking execution loop to process incoming packets and manage network transport.

Features

  • Arduino MQTT Clients - Provides a lightweight MQTT client implementation specifically for Arduino boards with Ethernet shields.
  • MQTT Broker Connections - Manages TCP connections to MQTT brokers and negotiates protocol versions for messaging.
  • PubSub IoT Messaging - Implements a publish and subscribe messaging pattern for IoT devices to exchange information.
  • Client-to-Client Messaging - Provides a client-side implementation for publish-subscribe communication between hardware devices and brokers.
  • MQTT Clients - Implements the MQTT client protocol for publishing and subscribing to messages via a broker.
  • MQTT Topic Publishing - Enables sending data to specific topics using standard payloads or memory-stored messages.
  • Socket Networking - Establishes a persistent TCP socket connection with a remote MQTT broker via hardware interfaces.
  • Topic Subscription Management - Manages the registration of interests in specific communication topics to receive messages.
  • Non-Blocking Event Loops - Utilizes a non-blocking event loop to process network packets and maintain the MQTT heartbeat.
  • Subject Subscription Filtering - Allows registering interest in MQTT topics using string identifiers to filter incoming data streams.
  • Remote Telemetry Reporting - Enables sending sensor readings from an Ethernet shield to a remote dashboard using MQTT.
  • Physical Hardware Control - Enables triggering physical actions on a microcontroller by sending command messages over MQTT.
  • Connection State Management - Tracks the internal client state to manage reconnections and publishing permissions.
  • Heartbeat Frames - Implements application-level keep-alive heartbeats to maintain persistent connections with the MQTT broker.
  • Callback-Based Event Dispatchers - Provides a system to route incoming MQTT messages to application-defined callback functions.
  • MQTT Libraries and Brokers - MQTT client for Arduino Ethernet Shield.

Star history

Star history chart for knolleary/pubsubclientStar history chart for knolleary/pubsubclient

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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 knolleary/pubsubclient do?

This project is a lightweight MQTT client library for Arduino boards, specifically designed for embedded systems utilizing an Ethernet Shield. It functions as an embedded messaging client that allows hardware devices to publish and subscribe to topics on a remote message broker.

What are the main features of knolleary/pubsubclient?

The main features of knolleary/pubsubclient are: Arduino MQTT Clients, MQTT Broker Connections, PubSub IoT Messaging, Client-to-Client Messaging, MQTT Clients, MQTT Topic Publishing, Socket Networking, Topic Subscription Management.

Which projects share features with knolleary/pubsubclient?

Projects with overlapping indexed features include: 256dpi/arduino-mqtt — This library is an Arduino-compatible client for the messaging protocol designed for resource-constrained embedded… eclipse-paho/paho.mqtt.java — This project is a Java messaging software development kit designed to facilitate real-time data exchange between… eclipse-paho/paho.mqtt.c — This project is a cross-platform C library designed for implementing MQTT messaging in applications. It serves as an… warmcat/libwebsockets — libwebsockets is an event-driven networking framework written in C. It provides a suite of tools for implementing HTTP… tuanpmt/esp_mqtt — This library is an MQTT client implementation designed for resource-constrained embedded systems, specifically… emqx/mqttx — MQTTX is a cross-platform MQTT client application designed for testing, debugging, and managing MQTT brokers. It…

Projects sharing features with Pubsubclient

These projects share indexed features with Pubsubclient. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 256dpi/arduino-mqtt256dpi avatar

    256dpi/arduino-mqtt

    1,093View on GitHub↗

    This library is an Arduino-compatible client for the messaging protocol designed for resource-constrained embedded systems. It provides a messaging interface that enables microcontrollers to establish persistent connections with brokers to exchange data and control signals. The library distinguishes itself through a focus on predictable resource usage, utilizing manual memory buffer management and a state-machine approach to handle connection persistence and automatic reconnections. It operates on a stream-oriented network abstraction, allowing it to interface with various hardware transport

    Carduinoiotmqtt
    View on GitHub↗1,093
  • 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
  • eclipse-paho/paho.mqtt.ceclipse-paho avatar

    eclipse-paho/paho.mqtt.c

    2,323View on GitHub↗

    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 application

    Ceclipse-pahoeclipseiotinternet-of-things
    View on GitHub↗2,323
  • warmcat/libwebsocketswarmcat avatar

    warmcat/libwebsockets

    5,296View on GitHub↗

    libwebsockets is an event-driven networking framework written in C. It provides a suite of tools for implementing HTTP servers and clients, WebSocket bidirectional communication, MQTT client messaging, and TLS-enabled socket encryption. The project distinguishes itself through a non-blocking event-loop architecture capable of scaling to high connection volumes by distributing network sessions across multiple service threads. It uses a protocol-based callback system and a pluggable event loop integration that allows the networking core to synchronize with external system event libraries. The

    C
    View on GitHub↗5,296
Compare all 30 related projects→