Skip to content

2 different C SDKs for aws iot. Which one is relevant?

0

There are 2 C SDKs for aws iot. https://github.com/aws/aws-iot-device-sdk-embedded-C and https://github.com/awslabs/aws-c-iot. The official SDK list page indicates https://github.com/aws/aws-iot-device-sdk-embedded-C as the C SDK but on the other hand, there is no Yocto recipe for this repository (https://layers.openembedded.org/layerindex/branch/master/recipes/?q=aws+iot). However, there is yocto receipe for the https://github.com/awslabs/aws-c-iot repository (https://layers.openembedded.org/layerindex/recipe/189489/).

Can someone help with clarification? Thanks

asked 2 years ago309 views

1 Answer
0

The AWS IoT Device SDK for Embedded C (https://github.com/aws/aws-iot-device-sdk-embedded-C) is the primary and officially recommended C SDK for AWS IoT, especially for resource-constrained devices. This SDK is a collection of C source files that can be used in embedded applications to securely connect IoT devices to AWS IoT Core. It includes libraries for MQTT, JSON parsing, AWS IoT Device Shadow, AWS IoT Jobs, AWS IoT Fleet Provisioning, and AWS IoT Device Defender.

This SDK is designed to be highly portable and can be used on any operating system and processor type, including microcontrollers (MCUs) and microprocessors (MPUs). It's particularly suited for devices with limited resources that require an optimized C language runtime.

The other repository you mentioned (https://github.com/awslabs/aws-c-iot) is part of the AWS Common Runtime (CRT) libraries. While it's also related to AWS IoT, it serves a different purpose and is not the primary SDK recommended for most embedded IoT projects.

Regarding the Yocto recipes, the absence of a recipe for the Embedded C SDK and the presence of one for aws-c-iot doesn't change the official recommendation. The Embedded C SDK is designed to be included directly in your project as source files, which might explain why there isn't a specific Yocto recipe for it.

If you're working on an embedded project, especially one with resource constraints, the AWS IoT Device SDK for Embedded C (aws-iot-device-sdk-embedded-C) is likely the most relevant choice. However, if you're working on a more complex project that uses the AWS Common Runtime, the aws-c-iot library might be more appropriate.

Always consider your specific project requirements, including device capabilities, when choosing which SDK to use.
Sources
AWS IoT Device SDKs, Mobile SDKs, and AWS IoT Device Client - AWS IoT Core
AWS IoT Device SDK for Embedded C - FreeRTOS
Connect devices to AWS IoT - AWS IoT Core

answered 2 years ago

AWS
EXPERT

reviewed 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.