Azure IoT Hub SDKs
There are three categories of software development kits (SDKs) for working with IoT Hub:
IoT Hub device SDKs enable you to build apps that run on your IoT devices using the device client or module client. These apps send telemetry to your IoT hub, and optionally receive messages, jobs, methods, or twin updates from your IoT hub. You can use these SDKs to build device apps that use Azure IoT Plug and Play conventions and models to advertise their capabilities to IoT Plug and Play-enabled applications. You can also use the module client to author modules for Azure IoT Edge runtime.
IoT Hub service SDKs enable you to build backend applications to manage your IoT hub, and optionally send messages, schedule jobs, invoke direct methods, or send desired property updates to your IoT devices or modules.
IoT Hub management SDKs help you build backend applications that manage the IoT hubs in your Azure subscription.
Microsoft also provides a set of SDKs for provisioning devices through and building backend services for the Device Provisioning Service. To learn more, see Microsoft SDKs for IoT Hub Device Provisioning Service.
Learn about the benefits of developing using Azure IoT SDKs.
Azure IoT Hub device SDKs
The Microsoft Azure IoT device SDKs contain code that facilitates building applications that connect to and are managed by Azure IoT Hub services. These SDKs can run on a general MPU-based computing device such as a PC, tablet, smartphone, or Raspberry Pi. The SDKs support development in C and in modern managed languages including in C#, Node.JS, Python, and Java.
The SDKs are available in multiple languages providing the flexibility to choose which best suits your team and scenario.
The C device SDK listed in the previous table is not suitable for embedded applications due to its memory management and threading model. For embedded devices, refer to the Embedded device SDKs.
Embedded device SDKs
These SDKs are designed and created to run on devices with limited compute and memory resources and are implemented using the C language.
The embedded device SDKs are available for multiple operating systems providing the flexibility to choose which best suits your team and scenario.
|Azure RTOS||Azure RTOS Middleware||GitHub||Quickstarts||Reference|
|Bare Metal||Azure SDK for Embedded C||GitHub||Samples||Reference|
Learn more about the IoT Hub device SDKS in the IoT device development documentation.
Azure IoT Hub service SDKs
The Azure IoT service SDKs contain code to facilitate building applications that interact directly with IoT Hub to manage devices and security.
Azure IoT Hub management SDKs
The IoT Hub management SDKs help you build backend applications that manage the IoT hubs in your Azure subscription.
SDK and hardware compatibility
For more information about device SDK compatibility with specific hardware devices, see the Azure Certified Device catalog or individual repository.
Some of the features mentioned in this article, like cloud-to-device messaging, device twins, and device management, are only available in the standard tier of IoT Hub. For more information about the basic and standard/free IoT Hub tiers, see Choose the right IoT Hub tier for your solution.
SDKs for related Azure IoT services
Azure IoT SDKs are also available for the following services:
Microsoft SDKs for IoT Hub Device Provisioning Service: To help you provision devices through and build backend services for the Device Provisioning Service.
Device Update for IoT Hub SDKs: To help you deploy over-the-air (OTA) updates for IoT devices.
Microsoft SDKs for IoT Plug and Play: To help you build IoT Plug and Play solutions.
Submit and view feedback for