Linux / OS X | |
Windows | |
Rusoto is an AWS SDK for Rust
You may be looking for:
Rust 1.17.0 or later is required.
On Linux, OpenSSL is required.
Rusoto is available on crates.io.
To use Rusoto in your Rust program built with Cargo, add it as a dependency and rusoto_$SERVICENAME
for any supported AWS service you want to use.
For example, to include only S3 and SQS:
[dependencies]
rusoto_core = "0.28.0"
rusoto_sqs = "0.28.0"
rusoto_s3 = "0.28.0"
As of Rusoto 0.25.0, the rusoto
crate is deprecated. This decision was made because the single crate implementing all AWS services was too large to compile, especially on TravisCI and Appveyor. The new main crate is rusoto_core
and all services now have their own crate.
See the Rusoto 0.25.0 release notes for more information including how to migrate from Rusoto 0.24.0 to Rusoto 0.25.0.
Rusoto has a crate for each AWS service, containing Rust types for that service's API.
A full list of these services can be found here.
All other public types are reexported to the crate root.
Consult the rustdoc documentation for full details by running cargo doc
or visiting the online documentation for the latest crates.io release.
A simple example of using Rusoto's DynamoDB API to list the names of all tables in a database:
extern crate rusoto_core;
extern crate rusoto_dynamodb;
use rusoto_dynamodb::{DynamoDb, DynamoDbClient, ListTablesInput};
use rusoto_core::{DefaultCredentialsProvider, Region};
use rusoto_core::default_tls_client;
fn main() {
let provider = DefaultCredentialsProvider::new().unwrap();
let client = DynamoDbClient::new(default_tls_client().unwrap(), provider, Region::UsEast1);
let list_tables_input: ListTablesInput = Default::default();
match client.list_tables(&list_tables_input) {
Ok(output) => {
match output.table_names {
Some(table_name_list) => {
println!("Tables in database:");
for table_name in table_name_list {
println!("{}", table_name);
}
}
None => println!("No tables in database!"),
}
}
Err(error) => {
println!("Error: {:?}", error);
}
}
}
For more information on Rusoto's use of AWS credentials such as priority and refreshing, see AWS Credentials.
Rusoto complies with semantic versioning 2.0.0. Until reaching 1.0.0 the API is to be considered unstable. See Cargo.toml or rusoto on crates.io for current version.
Information on release schedules and procedures are in RELEASING.
See CONTRIBUTING.
Linux, OSX and Windows are supported and tested via TravisCI and Appveyor.
Rust stable is supported. Older versions of Rust are supported and tested via TravisCI. The minimum Rust version is
incremented when it becomes inconvenient to support older versions. The current minimum version of Rust supported can
be found in .travis.yml. If a version number is not specified in the rust
section, only the named versions
listed are supported. This should be stable, beta and nightly.
Rusoto is distributed under the terms of the MIT license.
See LICENSE for details.