// the find
Azure/azure-sdk-for-c
This repository is for active development of the Azure SDK for Embedded C. For consumers of the SDK we recommend visiting our versioned developer docs at https://azure.github.io/azure-sdk-for-c.
The Azure SDK for Embedded C is Microsoft's official C99 client library for connecting microcontrollers and constrained IoT devices to Azure services (IoT Hub, Device Provisioning, Blob Storage). It's designed for environments where you can't afford dynamic allocation or a heavy runtime — think Cortex-M devices with 256KB flash. Not for general application developers.
Zero heap allocation: all data structures are caller-owned and passed by pointer, which is the right call for embedded and makes stack usage predictable. The HTTP and platform layers are fully swappable abstractions, so you can drop in libcurl on Linux or write your own adapter for a bare-metal TCP stack. Span-based string handling avoids copying substrings and keeps JSON parsing allocation-free. CI tests across gcc, clang, and MSVC so you're not surprised by compiler-specific UB.
Only 242 stars for a Microsoft-backed SDK is a signal — the embedded IoT space is fragmented and most teams reach for ESP-IDF or vendor SDKs instead. The scope has shrunk noticeably: the Blob Storage client exists but IoT is the only real focus now, and the middleware layers (FreeRTOS, Azure RTOS) are separate repos that you'd actually use in production. The no-op platform and HTTP stubs mean a first build 'works' but does nothing useful until you wire in real transport, which the samples underexplain. Vcpkg auto-download in the CMake setup will silently fail in air-gapped or corp-proxy environments with no clear fallback.