60 releases (15 stable)

new 1.16.0 Feb 20, 2024
1.13.0 Jan 25, 2024
1.9.0 Dec 21, 2023
1.3.0 Nov 27, 2023
0.0.0 May 7, 2021

#1 in #thrown

Download history 4718/week @ 2023-11-02 3825/week @ 2023-11-09 3082/week @ 2023-11-16 1835/week @ 2023-11-23 4032/week @ 2023-11-30 4408/week @ 2023-12-07 2499/week @ 2023-12-14 1500/week @ 2023-12-21 1000/week @ 2023-12-28 2416/week @ 2024-01-04 2501/week @ 2024-01-11 2876/week @ 2024-01-18 2157/week @ 2024-01-25 1923/week @ 2024-02-01 2233/week @ 2024-02-08 2453/week @ 2024-02-15

9,477 downloads per month
Used in aws-greengrass-nucleus


268K SLoC


IoT provides secure, bi-directional communication between Internet-connected devices (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. You can discover your custom IoT-Data endpoint to communicate with, configure rules for data processing and integration with other services, organize resources associated with each device (Registry), configure logging, and create and manage policies and credentials to authenticate devices.

The service endpoints that expose this API are listed in Amazon Web Services IoT Core Endpoints and Quotas. You must use the endpoint for the region that has the resources you want to access.

The service name used by Amazon Web Services Signature Version 4 to sign the request is: execute-api.

For more information about how IoT works, see the Developer Guide.

For information about how to use the credentials provider for IoT, see Authorizing Direct Calls to Amazon Web Services Services.

Getting Started

Examples are available for many services and operations, check out the examples folder in GitHub.

The SDK provides one crate per AWS service. You must add Tokio as a dependency within your Rust project to execute asynchronous code. To add aws-sdk-iot to your project, add the following to your Cargo.toml file:

aws-config = { version = "1.1.6", features = ["behavior-version-latest"] }
aws-sdk-iot = "1.16.0"
tokio = { version = "1", features = ["full"] }

Then in code, a client can be created with the following:

use aws_sdk_iot as iot;

async fn main() -> Result<(), iot::Error> {
    let config = aws_config::load_from_env().await;
    let client = aws_sdk_iot::Client::new(&config);

    // ... make some calls with the client


See the client documentation for information on what calls can be made, and the inputs and outputs for each of those calls.

Using the SDK

Until the SDK is released, we will be adding information about using the SDK to the Developer Guide. Feel free to suggest additional sections for the guide by opening an issue and describing what you are trying to do.

Getting Help


This project is licensed under the Apache-2.0 License.


~257K SLoC