Azure IoT Hub SDKs
IoT Hub provides three categories of software development kits (SDKs) to help you build device and back-end applications:
IoT Hub device SDKs enable you to build applications 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 also use the module client to author modules for Azure IoT Edge.
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.
Azure 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.
Note
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.
Azure IoT Hub device SDKs
The 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.
Language | Package | Source | Samples | Reference |
---|---|---|---|---|
.NET | NuGet | GitHub | Samples | Reference |
Python | pip | GitHub | Samples | Reference |
Node.js | npm | GitHub | Samples | Reference |
Java | Maven | GitHub | Samples | Reference |
C | packages | GitHub | Samples | Reference |
The Java device SDK includes samples for Android.
The C device SDK includes samples for iOS that use CocoaPods.
Warning
The Azure IoT C SDK isn't suitable for embedded applications due to its memory management and threading model. For embedded device SDK options, see the embedded device SDKs.
Embedded device SDKs
These SDKs were 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 scenario.
RTOS | SDK | Source | Samples | Reference |
---|---|---|---|---|
Azure RTOS | Azure RTOS Middleware | GitHub | Reference | |
FreeRTOS | FreeRTOS Middleware | GitHub | Samples | Reference |
Bare Metal | Azure SDK for Embedded C | GitHub | Samples | Reference |
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.
Platform | Package | Code Repository | Samples | Reference |
---|---|---|---|---|
.NET | NuGet | GitHub | Samples | Reference |
Java | Maven | GitHub | Samples | Reference |
Node | npm | GitHub | Samples | Reference |
Python | pip | GitHub | Samples | Reference |
Azure IoT Hub management SDKs
The IoT Hub management SDKs help you build backend applications that manage the IoT hubs in your Azure subscription.
Platform | Package | Code repository | Reference |
---|---|---|---|
.NET | NuGet | GitHub | Reference |
Java | Maven | GitHub | Reference |
Node.js | npm | GitHub | Reference |
Python | pip | GitHub | Reference |
SDKs for related Azure IoT services
Azure IoT SDKs are also available for the following services:
- SDKs for IoT Hub Device Provisioning Service: To help you provision devices through and build backend services for the Device Provisioning Service.