57 releases (13 stable)

new 1.14.0 Feb 16, 2024
1.12.0 Jan 25, 2024
1.9.0 Dec 21, 2023
1.3.0 Nov 27, 2023
0.0.0 May 7, 2021

#1490 in Network programming

Download history 11354/week @ 2023-10-31 9958/week @ 2023-11-07 9797/week @ 2023-11-14 10250/week @ 2023-11-21 11287/week @ 2023-11-28 12122/week @ 2023-12-05 11269/week @ 2023-12-12 7357/week @ 2023-12-19 3959/week @ 2023-12-26 8187/week @ 2024-01-02 8550/week @ 2024-01-09 9633/week @ 2024-01-16 10491/week @ 2024-01-23 10554/week @ 2024-01-30 11051/week @ 2024-02-06 9835/week @ 2024-02-13

43,276 downloads per month
Used in 2 crates


42K SLoC


Amazon Simple Notification Service (Amazon SNS) is a web service that enables you to build distributed web-enabled applications. Applications can use Amazon SNS to easily push real-time notification messages to interested subscribers over multiple delivery protocols. For more information about this product see the Amazon SNS product page. For detailed information about Amazon SNS features and their associated API calls, see the Amazon SNS Developer Guide.

For information on the permissions you need to use this API, see Identity and access management in Amazon SNS in the Amazon SNS Developer Guide.

We also provide SDKs that enable you to access Amazon SNS from your preferred programming language. The SDKs contain functionality that automatically takes care of tasks such as: cryptographically signing your service requests, retrying requests, and handling error responses. For a list of available SDKs, go to Tools for Amazon Web 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-sns to your project, add the following to your Cargo.toml file:

aws-config = { version = "1.1.5", features = ["behavior-version-latest"] }
aws-sdk-sns = "1.14.0"
tokio = { version = "1", features = ["full"] }

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

use aws_sdk_sns as sns;

async fn main() -> Result<(), sns::Error> {
    let config = aws_config::load_from_env().await;
    let client = aws_sdk_sns::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.


~261K SLoC