Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
Amazon IoT Device SDKs, Mobile SDKs, and Amazon IoT Device Client
This page summarizes the Amazon IoT Device SDKs, open-source libraries, developer guides,
sample apps, and porting guides to help you build innovative IoT solutions with Amazon IoT and
your choice of hardware platforms.
These SDKs are for use on your IoT device. If you're developing an IoT app for use on a
mobile device, see the Amazon Mobile SDKs. If
you're developing an IoT app or server-side program, see the Amazon SDKs.
Amazon IoT Device SDKs
The Amazon IoT Device SDKs include open-source libraries, developer guides with
samples, and porting guides so that you can build innovative IoT products or solutions on
your choice of hardware platforms.
The Amazon IoT Device SDKs have released an MQTT 5 client. The Amazon IoT Device SDKs don't
support using TLS 1.3 on macOS.
These SDKs help you connect your IoT devices to Amazon IoT using the MQTT and WSS
protocols.
- C++
-
Amazon IoT C++ Device SDK
The Amazon IoT C++ Device SDK allows developers to build connected applications
using Amazon and the Amazon IoT APIs. Specifically, this SDK was designed for
devices that are not resource constrained and require advanced features such
as message queuing, multi-threading support, and the latest language
features. For more information, see the following:
- Python
-
Amazon IoT Device SDK for Python
The Amazon IoT Device SDK for Python makes it possible for developers to write Python
scripts to use their devices to access the Amazon IoT platform through MQTT or MQTT over the
WebSocket protocol. By connecting their devices to Amazon IoT, users can securely work with
the message broker, rules, and shadows provided by Amazon IoT and with other Amazon services
like Amazon Lambda, Kinesis, and Amazon S3, and more.
- JavaScript
-
Amazon IoT Device SDK for JavaScript
The aws-iot-device-sdk.js package makes it possible for developers to write JavaScript applications that
access Amazon IoT using MQTT or MQTT over the WebSocket protocol. It can be used in Node.js environments and
browser applications. For more information, see the following:
- Java
-
Amazon IoT Device SDK for Java
The Amazon IoT Device SDK for Java makes it possible for Java developers to
access the Amazon IoT platform through MQTT or MQTT over the WebSocket protocol.
The SDK is built with shadow support. You can access shadows by using HTTP
methods, including GET, UPDATE, and DELETE. The SDK also supports a
simplified shadow access model, which allows developers to exchange data
with shadows by just using getter and setter methods, without having to
serialize or deserialize any JSON documents.
For more information, see the following:
- Swift
-
Amazon IoT Device SDK for Swift
The Amazon IoT Device SDK for Swift makes it possible for Swift developers to create Amazon IoT applications for Linux and Apple macOS, iOS, and tvOS platforms using the MQTT 5 protocol.
For more information, see the following:
Amazon IoT Device SDK for Embedded C
This SDK is intended for use by experienced embedded-software developers.
The Amazon IoT Device SDK for Embedded C (C-SDK) is a collection of C source files under the MIT open source license that can be
used in embedded applications to securely connect IoT devices to Amazon IoT Core. It includes an MQTT client, JSON Parser,
and Amazon IoT Device Shadow, Amazon IoT Jobs, Amazon IoT Fleet Provisioning, and Amazon IoT Device Defender libraries. This SDK is
distributed in source form and can be built into customer firmware along with application code, other libraries, and
an operating system (OS) of your choice.
The Amazon IoT Device SDK for Embedded C is generally targeted at resource constrained devices that require an optimized
C language runtime. You can use the SDK on any operating system and host it on any processor type (for example, MCUs and MPUs).
For more information, see the following:
Amazon Mobile SDKs
The Amazon Mobile SDKs provide mobile app developers platform-specific support for
the APIs of the Amazon IoT Core services, IoT device communication using MQTT, and the
APIs of other Amazon services.
- Android
-
Amazon Mobile SDK for Android
The Amazon Mobile SDK for Android contains a library, samples, and documentation
for developers to build connected mobile applications using Amazon. This
SDK also includes support for MQTT device communications and calling the
APIs of the Amazon IoT Core services. For more information, see the
following:
- iOS
-
Amazon Mobile SDK for iOS
The Amazon Mobile SDK for iOS is an open-source software development kit,
distributed under an Apache Open Source license. The Amazon Mobile SDK for iOS
provides a library, code samples, and documentation to help developers
build connected mobile applications using Amazon. This SDK also includes
support for MQTT device communications and calling the APIs of the
Amazon IoT Core services. For more information, see the following:
Amazon IoT Device Client
The Amazon IoT Device Client provides code to help your device connect to Amazon IoT,
perform fleet provisioning tasks, support device security policies, connect
using secure tunneling, and process jobs on your device. You can install
this software on your device to handle these routine device tasks so you can focus on
your specific solution.
The Amazon IoT Device Client works with microprocessor-based IoT devices with x86_64 or
ARM processors and common Linux operating systems.
- C++
-
Amazon IoT Device Client
For more information about the Amazon IoT Device Client in C++, see the
following:
Earlier Amazon IoT Device SDKs versions
These are earlier versions of Amazon IoT Device SDKs that have been replaced by the newer versions listed above.
These SDKs are receiving only maintenance and security updates. They will not be updated to include new features
and should not be used on new projects.