Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following tables list the various SDKs you can use to build IoT solutions.
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.
Use the device SDKs to develop code to run on IoT devices that connect to IoT Hub or IoT Central.
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 |
|---|---|---|---|---|
| Eclipse ThreadX | Azure RTOS Middleware | GitHub | Reference | |
| FreeRTOS | FreeRTOS Middleware | GitHub | Samples | Reference |
| Bare Metal | Azure SDK for Embedded C | GitHub | Samples | Reference |
Use the embedded device SDKs to develop code to run on IoT devices that connect to IoT Hub or IoT Central.
To learn more about when to use the embedded device SDKs, see C SDK and Embedded C SDK usage scenarios.
Device SDK lifecycle and support
This section summarizes the Azure IoT Device SDK lifecycle and support policy. For more information, see Azure SDK Lifecycle and support policy.
Package lifecycle
Packages are released in the following categories. Each category has a defined support structure.
Beta - Also known as Preview or Release Candidate. Available for early access and feedback purposes and is not recommended for use in production. The preview version support is limited to GitHub issues. Preview releases typically live for less than six months, after which they're either deprecated or released as active.
Active - Generally available and fully supported, receives new feature updates, as well as bug and security fixes. We recommend that customers use the latest version because that version receives fixes and updates.
Deprecated - Superseded by a more recent release. Deprecation occurs at the same time the new release becomes active. Deprecated releases address the most critical bug fixes and security fixes for another 12 months.
Get support
If you experience problems while using the Azure IoT SDKs, there are several ways to seek support:
Reporting bugs - All customers can report bugs on the issues page for the GitHub repository associated with the relevant SDK.
Microsoft Customer Support team - Users who have a support plan can engage the Microsoft Customer Support team by creating a support ticket directly from the Azure portal.
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 |
To learn more about using the service SDKs to interact with devices through an IoT hub, see IoT Plug and Play service developer guide.
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 |
Alternatives to the management SDKs include the Azure CLI, PowerShell, and REST API.
DPS device SDKs
The DPS device SDKs provide implementations of the Register API and others that devices call to provision through DPS. The device SDKs can run on general MPU-based computing devices 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 following table lists the device SDKs available for each supported language.
| Platform | Package | Code repository | Samples | Quickstart | Reference |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | Samples | Quickstart | Reference |
| C | apt-get, MBED, Arduino IDE or iOS | GitHub | Samples | Quickstart | Reference |
| Java | Maven | GitHub | Samples | Quickstart | Reference |
| Node.js | npm | GitHub | Samples | Quickstart | Reference |
| Python | pip | GitHub | Samples | Quickstart | Reference |
Warning
The C SDK listed above is not suitable for embedded applications due to its memory management and threading model. For embedded devices, refer to the Embedded device SDKs.
DPS 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.
| RTOS | SDK | Source | Samples | Reference |
|---|---|---|---|---|
| FreeRTOS | FreeRTOS Middleware | GitHub | Samples | Reference |
| Bare Metal | Azure SDK for Embedded C | GitHub | Samples | Reference |
DPS service SDKs
The DPS service SDKs help you build backend applications to manage enrollments and registration records in DPS instances.
| Platform | Package | Code repository | Samples | Quickstart | Reference |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | Samples | Quickstart | Reference |
| Java | Maven | GitHub | Samples | Quickstart | Reference |
| Node.js | npm | GitHub | Samples | Quickstart | Reference |
DPS management SDKs
The DPS management SDKs help you build backend applications that manage the DPS instances and their metadata 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 |
Next steps
Suggested next steps include: