This folder contains the following:
- The Azure IoT device SDK for C (prepackaged or to compile) to easily and securely connect devices to the Microsoft Azure IoT Hub service.
- Samples showing how to use the SDK
- Sends event data to Azure IoT based services.
- Maps server commands to device functions.
- Buffers data when the network connection is down.
- Implements configurable retry logic.
- Batches messages to improve communication efficiency.
- Supports pluggable transport protocols: HTTPS, AMQP and MQTT.
- Supports pluggable serialization methods.
Azure IoT device SDK for C can be used with a broad range of OS platforms and devices. For a list of tested configurations click here.
The IoT Hub Device SDK is available as CocoaPods for Mac and iOS device development. Details for how to use the CocoaPods are available here.
iOS Limitations
- Authentication is limited to SAS keys on iOS. No certificate-based authentication is officially supported.
- The Device Provisioning Client is not supported on iOS. Only the Azure IoT Hub device client is supported.
For a more complete iOS experience including the two missing features above, please see our sample native Swift library built on top of the Embedded C SDK.
When developing for Windows devices, you can leverage the Vcpkg package manager in order to easily reference the Microsoft Azure IoTHub C SDK libraries in your projects. The Windows samples in this repository show how to use the azure-iot-sdk-c Vcpkg package along with its dependencies in your C project. To install Microsoft Azure IoTHub vcpkg, follow the instructions at Setup C SDK vcpkg for Windows development environment
If you are developing on Arduino, you can leverage the Azure IoT library available in the Arduino IDE library manager. You can find the list of supported boards as well as the instructions for using the library on Arduino devices in the azure-iot-arduino GitHub repository directly.
In order to compile the C SDK on your own, you will need to install a set of tools depending on the platform you are doing your development on and the one you are targeting. You will also need to clone the current repository. Detailed instructions can be found below for each platforms:
- Setting up a Windows development environment
- Setting up a Linux development environment
- Setting up a Mac OS X development environment
The C device SDK uses CMake for compiler independent configuration and generates native build files and workspaces that can be used in the compiler environment of your choice.
The repository contains a set of simple samples that will help you get started. You can find a list of these samples with instructions on how to run them here. In addition to the simple samples found in the current repository, you can find detailed instructions for the certified for Azure IoT devices in our online catalog