// the find
aws/aws-iot-device-sdk-embedded-C
SDK for connecting to AWS IoT from a device using embedded C.
AWS's official embedded C SDK for connecting devices to AWS IoT Core. It's a collection of modular libraries (MQTT, HTTP, JSON, PKCS#11, Shadow, Jobs, Defender, Fleet Provisioning, SigV4) distributed as source code you compile into your firmware. Aimed at teams building IoT products on constrained hardware who are already committed to the AWS ecosystem.
The modular design is genuinely good — coreMQTT, coreJSON, etc. are independent submodules with no cross-dependencies, so you can pull in only what you need. MISRA-C compliance and CBMC formal verification for memory safety are real quality signals, not marketing — this matters when you're shipping firmware to 10k devices you can't patch easily. The transport layer abstraction is clean: you implement two function pointers (send/recv) and the MQTT/HTTP libraries work on any OS or bare metal. corePKCS11 as a software mock for prototyping before switching to real HSM hardware is a practical time-saver during bringup.
Linux-only demos are a meaningful gap — if you're on RTOS (Zephyr, ThreadX, anything not FreeRTOS), you're on your own for the platform layer with no reference beyond the POSIX implementation. The submodule-heavy structure is a recurring headache: clone without --recurse-submodules and you get an empty shell with no obvious error. OTA was removed in 202412.00 with a redirect to a separate Lab project, leaving a real hole for teams that were depending on it. Hard AWS lock-in: while coreMQTT technically works against any broker, the Shadow/Jobs/Defender libraries are pure AWS topic-string wrappers with no abstraction — switching cloud providers means rewriting those integration layers from scratch.