AWS IoT Device Shadow Library
The AWS IoT Device Shadow library enables you to store and retrieve the current state (the "shadow") of every IoT device registered in your AWS IoT account. The device's shadow is a persistent, virtual representation of your IoT device that you can interact with in your applications even if the device is offline. The device state captured as its "shadow" is itself represented as a JSON document. You can send commands to the AWS IoT Device Shadow service over MQTT or HTTP to query the latest known device state, or to change the state. Each IoT device's shadow is uniquely identified by the name of the corresponding "thing". A "thing" is a representation of a specific IoT device or logical entity in the AWS Cloud. See Managing Devices with AWS IoT for more information. More details about shadows can be found in AWS IoT documentation.
AWS IoT Device Shadow library is written in C and designed to be compliant with ISO C90 and MISRA C:2012. It has no dependencies on additional libraries other than the standard C library. It also doesn't have any platform dependencies, such as threading or synchronization. It can be used with any MQTT library and any JSON library. This library has proofs showing safe memory use, and does not perform any dynamic memory allocation, making it suitable for IoT microcontrollers, but also fully portable to other platforms.
The AWS IoT Device Shadow library can be freely used and is distributed under the MIT open source license
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.