These libraries have been optimized for modularity and memory usage for constrained microcontrollers, and have undergone code quality checks such as MISRA-C compliance, Coverity static analysis, and memory safety validation with the C Bounded Model Checker (CBMC) automated reasoning tool.
The OTA library makes it easier to download and cryptographically verify firmware updates. You can use the OTA library with your preferred MQTT library, HTTP library, and underlying operating system (e.g. FreeRTOS, Linux). The coreMQTT Agent library manages MQTT connections by serializing access to the coreMQTT library and reducing implementation overhead. For example, the MQTT agent removes the need for the application to periodically call MQTT_ProcessLoop(). This not only simplifies application design, it allows tasks (threads) in your multi-threaded applications to safely and efficiently share the same MQTT connection. See the coreMQTT-Agent demo for an example that uses OTA, Device Shadow, and Device Defender in multiple threads but sharing the same MQTT connection. The Device Defender library enables you to send device metrics to the AWS IoT Device Defender service. This library also supports custom metrics, a feature that helps you monitor operational health metrics that are unique to your fleet or use case. For example, you can define a new metric to monitor the memory usage or CPU load on your devices.