Forum Discussion
Why there are 2 azure iot C sdks?
I found 2 azure iot sdk for C on github.
azure-iot-sdk-c: https://github.com/Azure/azure-iot-sdk-c
azure-sdk-for-c: https://github.com/Azure/azure-sdk-for-c
Why there are 2 azure iot C sdks?
What is difference between 2 C sdks?
How to choose C sdk for development(azure-iot-sdk-c or azure-sdk-for-c)?
3 Replies
- Israr_2020Former EmployeeDangNH - 1. "Azure IoT C SDK" is a C99 SDK for connecting devices to Microsoft Azure IoT services. For more details you can refer to this (https://github.com/Azure/azure-iot-sdk-c#readme) readme. 2. "Azure SDK for Embedded C" is designed to allow small embedded (IoT) devices to communicate with Azure services. Refer this (https://github.com/Azure/azure-sdk-for-c#readme) readme for more details.
- DangNHCopper Contributor
Israr_2020 2 sdks provide difference APIs. If I develop application on Linux PC using "Azure IoT C SDK" to connect to Azure IoT services, later I want to move to small embedded IoT device. I have to re-implement code to to connect to Azure IoT services using "Azure SDK for Embedded C". Is it correct?
- wduraesFormer Employee
Hi DangNH , as Israr_2020 said, the Embedded C SDK is focused on constrained devices (normally based on microcontrollers). For non-constrained devices C SDK is also a good choice. Your correct on your assumption: an application created for C SDK will require some re-work to be migrated over the Embedded C SDK as their underlying architecture designs are different. If you anticipate a need for constrained devices in the future, you should consider leveraging the Embedded C SDK as it's modular approach will make it simpler to enable different device configurations.