commit | author | age
|
d6b4a7
|
1 |
## coreMQTT Client Library |
G |
2 |
|
|
3 |
This repository contains the coreMQTT library that has been optimized for a low memory footprint. The coreMQTT library is compliant with the [MQTT 3.1.1](https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html) standard. It has no dependencies on any additional libraries other than the standard C library, a customer-implemented network transport interface, and *optionally* a user-implemented platform time function. This library is distributed under the [MIT Open Source License](LICENSE). |
|
4 |
|
|
5 |
This library has gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score over 8, and checks against deviations from mandatory rules in the [MISRA coding standard](https://www.misra.org.uk). Deviations from the MISRA C:2012 guidelines are documented under [MISRA Deviations](MISRA.md). This library has also undergone both static code analysis from [Coverity static analysis](https://scan.coverity.com/), and validation of memory safety through the [CBMC automated reasoning tool](https://www.cprover.org/cbmc/). |
|
6 |
|
|
7 |
See memory requirements for this library [here](./docs/doxygen/include/size_table.md). |
|
8 |
|
|
9 |
**coreMQTT v2.1.1 [source code](https://github.com/FreeRTOS/coreMQTT/tree/v2.1.1/source) is part of the [FreeRTOS 202210.01 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.01-LTS) release.** |
|
10 |
|
|
11 |
## MQTT Config File |
|
12 |
|
|
13 |
The MQTT client library exposes build configuration macros that are required for building the library. |
|
14 |
A list of all the configurations and their default values are defined in [core_mqtt_config_defaults.h](source/include/core_mqtt_config_defaults.h). |
|
15 |
To provide custom values for the configuration macros, a custom config file named `core_mqtt_config.h` can be |
|
16 |
provided by the application to the library. |
|
17 |
|
|
18 |
By default, a `core_mqtt_config.h` custom config is required to build the library. To disable this requirement |
|
19 |
and build the library with default configuration values, provide `MQTT_DO_NOT_USE_CUSTOM_CONFIG` as a compile time preprocessor macro. |
|
20 |
|
|
21 |
**Thus, the MQTT library can be built by either**: |
|
22 |
* Defining a `core_mqtt_config.h` file in the application, and adding it to the include directories list of the library |
|
23 |
**OR** |
|
24 |
* Defining the `MQTT_DO_NOT_USE_CUSTOM_CONFIG` preprocessor macro for the library build. |
|
25 |
|
|
26 |
## Documentation |
|
27 |
|
|
28 |
For pre-generated documentation, please see the documentation linked in the locations below: |
|
29 |
|
|
30 |
| Location | |
|
31 |
| :-: | |
|
32 |
| [FreeRTOS.org](https://freertos.org/Documentation/api-ref/coreMQTT/docs/doxygen/output/html/index.html) | |
|
33 |
|
|
34 |
Note that the latest included version of coreMQTT may differ across repositories. |
|
35 |
|