coreMQTT Agent v1.1.0
Thread safe MQTT 3.1.1 Client
Overview

Thread safe MQTT 3.1.1 client

The coreMQTT Agent is a thread-safe library to serialize calls to coreMQTT, to be executed by a single thread. It provides APIs for a single, dedicated agent task to process coreMQTT related commands, and the APIs for other tasks to enqueue these commands for processing.

Why is there a higher level library based on coreMQTT?

coreMQTT is an MIT licensed open source C MQTT client library for microcontroller and small microprocessor based IoT devices. Its design is intentionally simple to ensure it has no dependency on any other library or operating system, and to better enable static analysis including memory safety proofs. That simplicity and lack of operating system dependency (coreMQTT does not require multithreading at all) means coreMQTT does not build thread safety directly into its implementation. Instead, thread safety must be provided by higher level software. The coreMQTT Agent library is a coreMQTT extension that provides that higher level functionality in the form of an MQTT agent (or MQTT daemon).

Memory Requirements

Memory requirements of the MQTT Agent library, including the coreMQTT library.

Code Size of coreMQTT Agent (example generated with GCC for ARM Cortex-M)
File
With -O1 Optimization
With -Os Optimization
core_mqtt_agent.c
1.7K
1.5K
core_mqtt_agent_command_functions.c
0.3K
0.2K
core_mqtt.c (coreMQTT)
3.0K
2.6K
core_mqtt_state.c (coreMQTT)
1.4K
1.1K
core_mqtt_serializer.c (coreMQTT)
2.5K
2.0K
Total estimates
8.9K
7.4K