Rusoto is an AWS SDK for Rust

Overview

Rusoto

api-docs-badge crates-io license-badge dependency-status-badge

Rusoto is an AWS SDK for Rust


You may be looking for:

Maintenance status

⚠️ Rusoto is in maintenance mode. ⚠️

The current maintainers only have the bandwidth to review dependency bumps and obvious bugfixes. Our bandwidth for reviewing new features is extremely limited.

While you are welcome to submit PRs that implement new features or refactor existing code, they are unlikely to be merged unless we can find more active maintainers.

Please see Meta: future of Rusoto (#1651) for details.

Installation

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.47.0"
rusoto_sqs = "0.47.0"
rusoto_s3 = "0.47.0"

Migration notes

Breaking changes and migration details are documented at https://rusoto.org/migrations.html.

Note that from v0.43.0 onward, Rusoto uses Rust's std::future::Future, and the Tokio 0.2 ecosystem. From v0.46.0 onward, Rusoto uses the Tokio 1.0 ecosystem.

Usage

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:

println!("No tables in database!"), }, Err(error) => { println!("Error: {:?}", error); } } } ">
use rusoto_core::Region;
use rusoto_dynamodb::{DynamoDb, DynamoDbClient, ListTablesInput};

#[tokio::main]
async fn main() {
    let client = DynamoDbClient::new(Region::UsEast1);
    let list_tables_input: ListTablesInput = Default::default();

    match client.list_tables(list_tables_input).await {
        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);
        }
    }
}

Credentials

For more information on Rusoto's use of AWS credentials such as priority and refreshing, see AWS Credentials.

Semantic versioning

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.

Releases

Information on release schedules and procedures are in RELEASING.

Contributing

Discussions take place on the Rusoto Discord channel.

See CONTRIBUTING for more information.

Supported OSs, Rust versions and non-AWS projects

Linux, macOS and Windows are supported and tested via GitHub actions.

Rust stable, beta and nightly are supported.

Rusoto's primary aim is to be used with AWS. Other projects that provide AWS-like APIs, such as Ceph, Minio, Yandex Object Storage, etc... are not a focus at this time. PRs to fix issues with Rusoto and AWS-like APIs are welcome but generally won't be created by Rusoto maintainers.

License

Rusoto is distributed under the terms of the MIT license.

See LICENSE for details.

Comments
  • Implement IAM support

    Implement IAM support

    Status

    • [x] Add iam feature
    • [x] Add iam module
    • [x] Enable service generation for iam in build.rs
    • [x] Modify timestamp handling to assume it is an f64, not a String
    • [x] Ensure that shapes have the proper case
      • AWS types for IAM shapes are camelCased, not CamelCased like the rest of the AWS services.
    • [x] Fix XML deserialization for IAM responses
    • [x] Verify serialization was not broken for other services (e.g. SQS)
    • [x] Fix the way the generator generates function names
      • @cmsd2 has fixed this upstream.
      • Currently it attempts to naively snake case the type, which doesn't work for types like ListSAMLProviders, which becomes list_s_a_m_l_providers
    • [x] Add tests
      • [x] list_users
      • [x] get_users
      • [x] protocol tests (implemented outside of this PR)
    • [x] Update README.md
    • [x] Wait for https://github.com/rusoto/rusoto/pull/386 to land, then rebase the code to utilize it's capitalize_first_letter_of_string function instead.
    • [x] Remove or make these lines debug-only to reduce codegen memory usage
    • [x] Squash commits
    • [x] Rebase on master
    • [x] Fix the usage of MockResponseReader by EC2
    • [ ] Await code-review

    Future Issues

    • Fix timestamp deserialization to deserialize to chrono::DateTime<FixedOffset> (#388)
    • Open upstream botocore issue to fix mismatched expected/received ListInstanceProfiles, ListSigningCertificates, ListSigningCertificatesResult, ListAccessKeys responses
    opened by indiv0 58
  • RFC: streaming support

    RFC: streaming support

    I took a stab at #481.

    This is definitely not good to merge -- the tests need fixing, I dropped the Debug trait on practically everything, and this should be squashed first (I broke it up into easier to review pieces as I was writing the code, so that it'd be easier to grok).

    Why I'm submitting the PR in this shoddy state is that I'm hoping to get some comments on the approach. I wasn't sure how to implement @mitsuhiko's idea to separate body reading step, so in order to understand the problem (and the code) better, I went ahead and tried my first idea bashed at the compiler till I got something working.

    The problems I see with this approach are:

    1. All the API takes mutable Requests now, which seems like overkill -- maybe this can be changed to only apply to requests with a Body-shaped field
    2. We can't derive Debug or Clone automatically while embedding a Read object -- but we can manually derive a clone that skips over the body
    3. Having knowledge of the Body shape in the code seems a bit unclean

    Any thoughts or comments would be appreciated.

    opened by ford-prefect 55
  • Add `travis-cargo` Support

    Add `travis-cargo` Support

    Status

    • [x] .travis.yml
      • [x] Update .travis.yml with necessary features for travis-cargo support.
        • [x] Add code to load travis-cargo
        • [x] Enable doc-upload and coveralls features of travis-cargo.
        • [x] Add encrypted GH_TOKEN variable
      • [x] Add 1.8.0 build train to .travis.yml.
      • [x] Add osx to os matrix in .travis.yml.
      • [x] Enable cargo caching in .travis.yml to speed up CI build time.
      • [x] Enable cargo bench and cargo doc commands in .travis.yml script section.
      • [x] Add RUST_BACKTRACE=1 env var to .travis.yml.
      • [x] Enable .travis.yml builds on the auto branch.
        • This is necessary for future Homu support
      • [x] Re-deny CI build failures on the beta train
        • I don't think it's correct to allow CI build failures on the beta train because ideally you want to fix errors as they appear in nightly builds, before the propogate to beta builds
      • [x] Fix the way the PATH variable is generated to be OS-specific
    • [x] README.md
      • [x] Bump minimum required version notice from 1.7.0 to 1.8.0
    • [x] Other
      • [x] Rename all instances of the nightly feature to unstable for compatibility with travis-cargo.
        • travis-cargo automatically adds the unstable feature to nightly builds, which we want (to test syntex macro codegen), but our equivalent feature was named nightly so I renamed it
      • [x] Remove docgen.sh in favor of travis-cargo doc-upload.

    Related Issues/PRs

    • Might depend on #222 - Modify Travis CI Configuration to Execute All Tests
    • Closes #226 - Modify Travis CI Configuration to Utilize travis-cargo
    • #247 - Add Homu Support
    opened by indiv0 46
  • Asynchronous DispatchSignedRequest and Service APIs

    Asynchronous DispatchSignedRequest and Service APIs

    Related to #867.

    Okay, since @SecurityInsanity and @adimarco have asked me to come forth with a PR, here we go!

    I'll spend some time rebasing this evening, in the meantime feel free to start the discussion.

    opened by srijs 41
  • S3: SignatureDoesNotMatch

    S3: SignatureDoesNotMatch

    I'm trying to use rusoto (0.16.0) for listing and fetching objects from S3, but without success. S3 rejects the requests, returns 403 and with the error code SignatureDoesNotMatch. Listing buckets work fine, so I know the credentials are picked up correctly.

    Comparing the V4 signatures generated by rusoto and boto, it seems that rusoto simply does it incorrectly, but that might just be a misunderstanding on my part. I've seen other tickets mentioned that s3.rs is to be replaced with generated code, which sounds like a good idea as that module is huge. Unfortunately, it doesn't help me much right now as I'd like to use rusoto today. :-)

    I can share debug info if it's helpful.

    opened by knutin 40
  • Implement Elastic Transcoder Support

    Implement Elastic Transcoder Support

    I'm interested in implementing Elastic Transcoder support (as I need it for a personal project), so I've begun a PR for it.

    I'll post updates and questions here as I work on it.

    Current Status

    • [x] Add ets feature to Cargo.toml
    • [x] Generate elastictranscoder Service in build.rs
    • [x] Implement rest-json generator
      • [x] Add rest-json generator
      • [x] Add request_uri format code generator function
      • [x] Add querystring format code generator function
      • [x] Manually verify it works for all Ets operations
        • [x] cancel_job
        • [x] create_job
        • [x] create_pipeline
        • [x] create_preset
        • [x] delete_pipeline
        • [x] delete_preset
        • [x] list_jobs_by_pipeline
        • [x] list_jobs_by_status
        • [x] list_pipelines
        • [x] list_presets
        • [x] read_job
        • [x] read_pipeline
        • [x] read_preset
        • [x] test_role
        • [x] update_pipeline
        • [x] update_pipeline_notifications
        • [x] update_pipeline_status
    • [x] Add tests
      • EtsClient
        • generated functions
          • [ ] ~~cancel_job~~ (requires IAM)
          • [ ] ~~create_job~~ (requires IAM)
          • [ ] ~~create_pipeline~~ (requires IAM)
          • [x] create_preset
          • [ ] ~~delete_pipeline~~ (requires IAM)
          • [x] delete_preset
          • [ ] ~~list_jobs_by_pipeline~~ (requires IAM)
          • [x] list_jobs_by_status (could be improved)
            • once create_job is possible this should be modified to create a job then check for it in the list
          • [x] list_pipelines (could be improved)
            • once create_pipeline is possible this should be modified to create a pipeline then check for it in the list
          • [x] list_presets
          • [ ] ~~read_job~~ (requires IAM)
          • [ ] ~~read_pipeline~~ (requires IAM)
          • [x] read_preset
          • [ ] ~~test_role~~ (requires IAM)
          • [ ] ~~update_pipeline~~ (requires IAM)
          • [ ] ~~update_pipeline_notifications~~ (requires IAM)
          • [ ] ~~update_pipeline_status~~ (requires IAM)
        • extra tests
          • [x] create_pipeline_without_arn
    • [ ] ~~Add documentation~~
    • [x] Update README.md
      • [x] Add ETS to supported services list
    • [ ] ~~Bump version~~
    • [x] Squash commits
    • [x] Rebase on master
    • [ ] Update documentation on gh-pages

    Notes

    • HttpError
      • code is now Option<String> because HttpErrors for Ecs don't specify it
    • Metadata
      • service_abbreviation is now Option<String> because Ecs doesn't specify it
    • generator
      • generate_protocol now has a match statement to retrieve the service_abbreviation since it's now an Option<String>
    • HttpRequest
      • response_code is a new field to accommodate the responseCode to expect, which is provided for certain Ets operations.

    Future PRs

    • Improve error handling by expanding AWSError to support AWS error codes
    • Add support for request retrying upon a "request throttled" response
    • Add IAM support
    • Add remaining ETS test cases (requires IAM support)

    Resources

    opened by indiv0 38
  • Service Crate Generator

    Service Crate Generator

    Here it is. This builds upon the work done in #623 -- the diff will shrink when that is merged. Sorry that it's so large, I tried to find ways to shrink the code that needed review, but it's such a large refactoring that I don't think it's possible to get it much smaller than this.

    I've labelled this as a WIP, but it should have feature parity with the existing rusoto code. Remaining work is around code cleanup and improving crate generator documentation. Also making sure that Travis/Appveyor work, which I can only do by opening a PR.

    Motivation

    The rusoto crate suffers from ridiculously long compile times, causing CI timeouts and slow builds for users. In an attempt to alleviate this compile time, it was suggested to split the project into individual crates that can be built and tested separately.

    Description

    This PR reworks how services are generated by implementing a new executable project services_crategen that can generate individual crates for each service. The executable takes two inputs:

    • the list of services to generate, either directly on the command line in name@version format or stored in a configuration file. The standard config file is provided as services.json in service_crategen.
    • the output folder to generate the crates in. This should almost always be ../rusoto/services unless testing.

    The executable can be rerun and will produce identical output, provided nothing in the service definition or the code generation has changed.

    Once the service's crate has been generated, it can be customized. Certain crates contain custom tests, and sts contains custom credential implementation logic. This custom logic can be placed in the custom module in a crate, which will not be overwritten on crate regeneration (but obviously must be kept up-to-date in order to ensure the crate continues to build).

    Building and testing the full project is nearly as simple as it was before, using Cargo workspaces. Just go to the rusoto directory and cargo build --all or cargo test --all. Only this time it shouldn't bring your machine to its knees. 😁

    Note: This PR does not contain the generated service code. That will come in a future PR, pending discussion in #559.

    Future Enhancements

    • ~~Generate README and LICENSE along with each crate~~
    • Move integration tests into each service crate
    • Improve modularization of crate generator code. Currently just an MVP
    • Remove "meta-crate"? This is the current rusoto crate with features for services, implemented using the crates and core module instead.
    • Expand declarative service configuration (services.json) to include things like custom dependencies.
    opened by mthjones 37
  • Allow Manual Specification of Credentials

    Allow Manual Specification of Credentials

    fixes #591

    This allows manual specification of credentials for rusoto_credentials. not really much to this patchset since it basically just wraps credentials provider.

    opened by Mythra 35
  • Modify Travis CI Configuration to Execute All Tests

    Modify Travis CI Configuration to Execute All Tests

    Travis CI does not currently execute all the available tests due to the --lib flag. Unless there is a specific reason it is included, this flag should be removed.

    Additionally, the project maintainers could possibly (up to their discretion as this will use their AWS accounts) add a rusoto testing user with appropriate privileges to their AWS. They could then add a set of AWS credentials to Travis as encrypted variables which would allow Travis to execute rusoto tests against AWS directly (for example, for the upcoming Elastic Transcoder tests).

    opened by indiv0 34
  • Allow replacing openssl

    Allow replacing openssl

    Having rusoto as a dependency causes issues for me since it introduces an openssl dependency. This breaks my build due to https://github.com/sfackler/rust-openssl/issues/603, this patch introduces a way to replace openssl with rustls. openssl is still the default.

    As an alternative approach, I could introduce a way to build rusoto without an https client so I can provide one myself.

    opened by kpcyrd 31
  • Make a crate for each AWS service

    Make a crate for each AWS service

    It's time to split the mega-crate of Rusoto into smaller ones.

    This will address the issues around long compile times as well as Travis and Appveyor running out of memory when compiling our monster crate. We're only getting bigger, as we've got another 30 some services to add to the 50 some Rusoto currently supports. We've struggled with crate size and compilation times before:

    • https://github.com/rusoto/rusoto/issues/513
    • https://github.com/rusoto/rusoto/issues/364
    • https://github.com/rusoto/rusoto/issues/537

    Pulling each service out into its own crate will also help Rusoto users get what they need instead of our main huge crate. It opens up possibilities to generate code and publish that as a crate, eliminating the codegen step for users.

    Pre-1.0.0 release is the time to do this.

    I've got an experiment of pulling out SQS in a branch.

    Items to do:

    • split out each service
    • make a build script that goes through each service and does cargo build and cargo test --lib on it
    • ensure API docs are properly published
    • revisit all sample code and update
    • update the gitbook
    • revisit if we still need cargo features: doesn't make sense for the SQS crate to need to be compiled with --features sqs

    This will probably make https://github.com/rusoto/rusoto/issues/466 outdated/fixed.

    help wanted Hard 
    opened by matthewkmayer 31
  • Fix all

    Fix all "paramater" typos

    Should improve docs slightly searches for "parameter" will improve.

    I noticed this when looking at this page, where it says "Paramaters": https://rusoto.github.io/rusoto/rusoto_core/param/type.Params.html

    Please help keep the CHANGELOG up to date by providing a one sentence summary of your change:

    Fix "paramater" typo throughout docs

    opened by samueloph 0
  • Add support for the eu-central-2 (Zurich) and me-central-1 (UAE) regions.

    Add support for the eu-central-2 (Zurich) and me-central-1 (UAE) regions.

    Please help keep the CHANGELOG up to date by providing a one sentence summary of your change:

    Add support for the eu-central-2 (Zurich) and me-central-1 (UAE) regions.

    Also no longer using deprecated chrono method in rusoto_signature.

    opened by jnicholls 1
  • Replace deprecated code in chrono 0.4.23

    Replace deprecated code in chrono 0.4.23

    Instances where replacement is necessary

    rusoto/signature/src/signature.rs:391:26 current_time.date().naive_utc()
    rusoto/signature/src/signature.rs:496:18 date.date().naive_utc()
    rusoto/signature/src/signature.rs:962:31 let date = NaiveDate::from_ymd(0, 1, 1);
    
    opened by iajoiner 0
  • AWS_REQUEST_ID_HEADER not always picked up in Display for RusotoError<E>

    AWS_REQUEST_ID_HEADER not always picked up in Display for RusotoError

    There's a trait impl like

    impl<E: Error + 'static> fmt::Display for RusotoError<E> {
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
            match *self {
    // …
                RusotoError::Unknown(ref cause) => write!(
                    f,
                    "Request ID: {:?} Body: {}",
                    cause.headers.get(AWS_REQUEST_ID_HEADER),
                    cause.body_as_str()
                ),
    // ...
            }
        }
    

    and

    /// Header used by AWS on responses to identify the request
    pub const AWS_REQUEST_ID_HEADER: &str = "x-amzn-requestid";
    

    but this isn't completely correct. For example, I sent a PutObjectRequest with md5 set to Some("fake") and in response I got:

    Request ID: None Body: <?xml version="1.0" encoding="UTF-8"?>
    <Error><Code>InvalidDigest</Code><Message>The Content-MD5 you specified was invalid.</Message><Content-MD5>fake</Content-MD5><RequestId>M99NXA1M3GDBERKX</RequestId><HostId>8eomc+jLMa4yGJk8BsYCCUdyd4mKVHhUA+/ILHFdcrVKMEcEbAKdnH8cAMXnDpeKkH99yqJkJis=</HostId></Error> (Unknown(BufferedHttpResponse {status: 400, body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidDigest</Code><Message>The Content-MD5 you specified was invalid.</Message><Content-MD5>fake</Content-MD5><RequestId>M99NXA1M3GDBERKX</RequestId><HostId>8eomc+jLMa4yGJk8BsYCCUdyd4mKVHhUA+/ILHFdcrVKMEcEbAKdnH8cAMXnDpeKkH99yqJkJis=</HostId></Error>", headers: {"x-amz-request-id": "M99NXA1M3GDBERKX", "x-amz-id-2": "8eomc+jLMa4yGJk8BsYCCUdyd4mKVHhUA+/ILHFdcrVKMEcEbAKdnH8cAMXnDpeKkH99yqJkJis=", "content-type": "application/xml", "transfer-encoding": "chunked", "date": "Tue, 08 Nov 2022 01:57:22 GMT", "server": "AmazonS3", "connection": "close"} })) (should_retry: false)
    

    You'll notice how the header is x-amz-requestid so the Display instance fails to pick it up and shows None.

    I noticed that some API docs such as https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-logging-variables.html specify that it can be either one:

    The AWS endpoint's request ID from the x-amz-request-id or x-amzn-requestId header.
    
    opened by Fuuzetsu 0
  • Added function to create a mock response using bytes

    Added function to create a mock response using bytes

    Please help keep the CHANGELOG up to date by providing a one sentence summary of your change:

    Added the ability to create a MockRequestDispatcher with body of bytes.

    This is useful when we're serializing/deserializing stuff using bincode.

    opened by gcohara 0
Releases(rusoto-v0.48.0)
  • rusoto-v0.48.0(Apr 25, 2022)

    [0.48.0] - 2022-04-24

    Rusoto is in maintenance mode. This may be the last Rusoto release. Consider moving to the AWS SDK for Rust.

    • Remove macie, mobile, and worklink services, which have had their DNS records removed
    • Add support for ap-southeast-3, Asia Pacific (Jakarta)
    • Add Clone derived trait to TlsError
    • Allow the user to choose between rustls and rustls-webpki, and make only the former depend on native cert support
    • Update hyper-rustls to 0.23
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.47.0(Aug 21, 2021)

    0.47.0 - 2021-06-29

    • Update to botocore 1.20.102
    • Update to serde_urlencoded 0.7
    • Update to rustc_version 0.4
    • Update to shlex 1.0
    • Update to hmac 0.4
    • Replace time-related types in rusoto_signature with chrono types, to match rusoto_credential
    • Swap the non-RustCrypto md5 crate for the RustCrypto md-5 crate, to match usage of RustCrypto sha2 crate
    • Remove Sync constraint on ByteStream-related functions.
    • Update incorrect minimum versions of async-trait, percent-encoding, and serde
    • Avoid unnecessary calls to to_string
    • Remove unpublished and outdated helpers crate
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.46.0(Jan 6, 2021)

    0.46.0 - 2021-01-05

    • Display rusoto_core::Client in docs
    • Fix unsoundness in rusoto_mock::MultipleMockRequestDispatcher
    • Add ability to set local agent appended to the default User-Agent
    • Update to base64 0.13
    • Update to bytes 1.0
    • Update to hmac 0.10
    • Update to hyper-rustls 0.22
    • Update to hyper-tls 0.5
    • Update to hyper 0.14
    • Update to tokio 1.0
    • Update to botocore 1.19.42
    • Swap the unmaintained dirs crate for its replacement dirs-next
    • Swap pin-project for the lighter weight pin-project-lite
    • Disable chrono's oldtime feature
    • Remove dependency on regex
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.45.0(Jul 22, 2020)

    0.45.0 - 2020-07-22

    • Add event-stream protocol support (currently only for JSON APIs, used in subscribe_to_shard call in Kinesis)
    • Extract common generated code into utility functions to improve compile times
    • Allow creating a ProfileProvider with only the profile
    • CDATA sections are now treated like strings
    • Fix incorrect type definition for rusoto_batch::JobDetail
    • Update to hmac 0.8 and sha2 0.9
    • Added Sync bounds to AsyncRead and Read structures
    • Update to botocore 1.17.20
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.44.0(Jun 2, 2020)

    0.44.0 - 2020-06-01

    • Add support for af-south-1, Africa (Cape Town), and eu-south-1, Europe (Milan)
    • Update to botocore 1.16.14
    • Fix Time::now() and OffsetDateTime::now() deprecation warnings
    • Fix minimum version of time crate
    • Always encode + in query strings
    • Added a Cognito credential provider
    • Add MultipleMockRequestDispatcher to permit mocking multiple requests using the same client
    • Fix rusoto_sts::WebIdentityProvider::from_k8s_env always requiring AWS_ROLE_SESSION_NAME env var which should be optional
    • Added support to optionally define a session policy when using rusoto_sts::WebIdentityProvider
    • Omit generating XML-deseralization code for actions without a response body
    • Add region_from_profile() function to ProfileProvider
    • Fix applying Content-Encoding
    • Added new_with_size() function to ByteStream
    • Add defualt help text to Makefile
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.43.0(Mar 16, 2020)

    This is a breaking change: Rusoto now uses std::future::Future, async/.await, and Tokio 0.2 πŸŽ‰

    [0.43.0] - 2020-03-15

    • Fix minimum version of hyper
    • Fix PrimitiveDateTime deprecation error
    • Update to dirs 2.0
    • Bump base64 to 0.12 and hyper-rustls to 0.20
    • Fix serialize_structs and deserialize_structs
    • Fix JWT serialization in WebIdentityProvider
    • Add ability to set local agent prepended to the default User-Agent
    • Fix invalid signature for Route 53 resource_record_sets methods
    • Improve Display impl for RusotoError::Unknown
    • Fix hang in XML deserialization for flattened shapes
    • Remove obsolete RusotoFuture and fix docs generation on nightly
    • Fix credential_process, again
    • Change non-China S3 domains to s3.{region}.amazonaws.com

    [0.43.0-beta.1] - 2020-02-07

    • Move to std::future::Future, async/.await, and Tokio 0.2
    • Update to botocore 1.14.9
    • Add Discord invite link to README.md and CONTRIBUTING.md
    • Remove unused import
    • Fixed links in AWS-CREDENTIALS.md
    • Fixed SNS API's attributes and value keyword
    • Adding support for web identity provider, which enables IAM roles for Kubernetes service accounts.
    • Add object-safe AwsCredentialsProvider trait as alternative to the existing generic ProvideAwsCredentials trait.
    • Introduce Secret type to automatically zero-out memory use to stored secret credentials. So far, only used in the new web identity provider.
    • Introduce Variable to abstract over certain credential provider input parameters.
    • Encode request payload optionally with Gzip
    • Add Debug trait to generated Clients
    • Add rusoto_ec2::filter! macro
    • Improve InstanceMetadataProvider to avoid cloning unnecessarily
    • Remove deprecated Error::description implementations
    • Add features serialize_structs and deserialize_structs
    • Implement Clone on various Credential structs.
    • Fix incorrect encoding of Session Token when pre-signing URLs
    • Add IoT Secure Tunneling service
    • Fix Directory Service integration tests
    • Update to time 0.2.x
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.43.0-beta.1(Feb 7, 2020)

    [0.43.0-beta.0] - 2020-02-07

    • Move to std::future::Future, async/.await, and Tokio 0.2
    • Update to botocore 1.14.9
    • Add Discord invite link to README.md and CONTRIBUTING.md
    • Remove unused import
    • Fixed links in AWS-CREDENTIALS.md
    • Fixed SNS API's attributes and value keyword
    • Adding support for web identity provider, which enables IAM roles for Kubernetes service accounts.
    • Add object-safe AwsCredentialsProvider trait as alternative to the existing generic ProvideAwsCredentials trait.
    • Introduce Secret type to automatically zero-out memory use to stored secret credentials. So far, only used in the new web identity provider.
    • Introduce Variable to abstract over certain credential provider input parameters.
    • Encode request payload optionally with Gzip
    • Add Debug trait to generated Clients
    • Add rusoto_ec2::filter! macro
    • Improve InstanceMetadataProvider to avoid cloning unnecessarily
    • Remove deprecated Error::description implementations
    • Add features serialize_structs and deserialize_structs
    • Implement Clone on various Credential structs.
    • Fix incorrect encoding of Session Token when pre-signing URLs
    • Add IoT Secure Tunneling service
    • Fix Directory Service integration tests
    • Update to time 0.2.x
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.42.0(Nov 20, 2019)

    [0.42.0] - 2019-11-18

    • Use static initializer for AWS profile regex
    • Add QLDB service
    • Add QLDB Session service
    • Update Skeptic tests for Rusoto v0.41
    • Don't decode query string parameters before encoding it. Results in fixing the prefix and marker params for s3 list_objects methods
    • Add Textract service
    • Update CloudDirectory API definition to 2017-01-11
    • Add SecurityHub service
    • Add Transfer service
    • Introducing rusoto_signature, a standalone crate for signing HTTP requests.
    • Make static credentials into a credential provider
    • Add anonymous credentials support
    • Don't trim whitepsace when parsing xml payload. Fixes truncating of items with spaces in payloads such as an S3 key returned in list_objects_v2
    • Region deserialization format matches what Region serializers expect: https://github.com/rusoto/rusoto/pull/1544
    • Fixed regression of x-amz-content-sha256 header not being signed: https://github.com/rusoto/rusoto/pull/1545
    • Allow rustls to be used in rusoto_mock: https://github.com/rusoto/rusoto/pull/1557
    • Added opt-in ability for service objects to be serialized: https://github.com/rusoto/rusoto/pull/1560
    • Avoid panicking in credential provider when parsing credentials file: https://github.com/rusoto/rusoto/pull/1573
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.41.0(Oct 9, 2019)

    [0.41.0] - 2019-10-07

    • Add HttpClient::from_builder
    • Upgrade to botocore from 1.12.163 to 1.12.230
    • The types rusoto_events::{CloudWatchEvents,CloudWatchEventsClient} were renamed to rusoto_events::{EventBridge,EventBridgeClient}
    • Deserialize PostTextResponse correctly by allowing null values in the slots field
    • Fix Profile Config Loading: should ignore comments with '=' chars
    • Add App Mesh service
    • Fix service_crategen to parse operations with multiple static params
    • Refactor S3 integration tests - about a #[test] per behavior
    • Add support for non signing clients
    • Add EC2 Instance Connect service
    • Allow deserialization of regions without an endpoint specified
    • Add ApNortheast3 region
    • Add MeSouth1 region
    • Add x-amz-content-sha256 header to signed and canonical headers
    • Added Eq and Hash implementations on Region
    • Fixed parsing of Athena error messages
    • Fix credential_process behavior when using the non-default profile
    • Correctly read session tokens from credential_process
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.40.0(Jul 19, 2019)

    [0.40.0] - 2019-06-28

    • Only emit types used in service during crate generation
    • Updated CloudFront to use latest API version: 2018-11-05
    • Only emit crate tests section when needed
    • Fix bug with CodePipeline response not containing required fields from AWS
    • Moved API documentation links to docs.rs
    • Decode IAM policy documents automatically
    • Removed serde_json crate from services where it was not required
    • Exclude test_resources in cargo manifest
    • upgrades botocore version to from 1.12.156 to 1.12.163
    • (Breaking Change) Fix invalid signatures on presigned URLs by adding a new should_sha256_sign_payload argument to SignedRequest::generate_presigned_url.
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.39.0(May 19, 2019)

    Another release, roughly on schedule! 😁

    CHANGELOG:

    • Add Worklink service
    • Add FSX service
    • Fix de/serialization of DynamoDB binary set attribute values
    • Change type for blob values from Vec<u8> to Bytes
    • Add DocDB service
    • Add License Manager service
    • Add Kafka service
    • Add Chime service
    • Add RDS Data service
    • Add ComprehendMedical service
    • Add Ap-East-1 Region
    • Remove log crate dependency from services
    • Remove decoding of the uri path before encoding it
    • Use http::HeaderMap instead of our custom implementation
    • Update all public crates to Rust 2018 edition

    A massive thank you to all contributors! You make this project happen. πŸ‘

    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.38.0(Apr 19, 2019)

    CHANGELOG for Rusoto 0.38.0:

    • Add RusotoError enum as base error type for all services
    • Improve error messages for BufferedHttpResponse in Unknown error variants.
    • Fix hostname derivation for custom Region endpoints
    • Support presigned URLs for multipart uploads to S3
    • Add Us-Gov-East region
    • Fix a bug in SNS CreateTopic and Subscribe
    • Reduced generated xml deserializer logic
    • Move credentials crate to Rust 2018
    • Remove internal test files from published crates for rusoto_credential and rusoto_core
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.37.0(Mar 16, 2019)

    • Implement Clone on the various Client types.
    • Upgrade hyper-rustls library
    • Fix duplicated Content-Type header in SageMaker Runtime
    • Switch from try! to ? operator
    • Remove unneeded muts in Glacier codegen
    • Add Eu-North-1 Region
    • Fix bug in SNS publish message action
    • Mock can simulate communications errors
    • Upgrade botocore definitions to 1.12.100
    • add amplify service
    • add apigatewaymanagementapi service
    • add apigatewayv2 service
    • add ram service
    • Add credential_process support in ~/.aws/config
    • Add Route53 TXT record quoting helper
    • Fix a malformed SNS Publish API request when it has message attributes
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.36.0(Dec 11, 2018)

    Rusoto 0.36.0 ! πŸŽ‰

    CHANGELOG:

    • Add Connect service
    • Add MediaTailor support
    • Add ByteStream struct to core
    • Skip serializing blobs when they are Option::None
    • Fix typo in service_crategen README.md
    • Add Kinesis Video Archived Media service
    • Update regex to version 1
    • Add Appsync service
    • Handle s3 out of order elements
    • Add mediaconvert service
    • Add KinesisVideo support
    • Add a filter that will limit what services to generate
    • Enable passthrough parsing of payload members
    • Add sagemaker-runtime
    • Fix some glacier bugs
    • Add CloudFront unit test
    • Add IoT Data service
    • Add MediaLive service
    • Add ResourceGroups service
    • Add Mobile service
    • Skip serializing blobs when they are Option::None (DynamoDB)
    • Fix import/export endpoint
    • Add MediaPackage service
    • Add IoT Jobs Data
    • Add Kinesis Video Media service
    • Add IoT Analytics
    • Add IoT 1click devices
    • Add Workmail service
    • Add IoT 1Click Projects
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.35.0(Nov 2, 2018)

    Welcome to Rusoto 0.35.0! This release has been a long time coming, thanks for your support in making it happen. πŸ‘ We've got 18 new services, some bug fixes and ergonomic improvements.

    [0.35.0] - 2018-10-31

    • Add Cost Explorer
    • Add Performance Insights support
    • Add ServiceDiscovery support
    • Add Sentiment support
    • Add Sagemaker support
    • Add Transcribe service
    • Added Neptune support
    • Add GuardDuty service
    • Add AWS Macie
    • Adds EKS
    • Add AWS Pricing service
    • Add Translate service
    • Add Firewall Management Service (FMS)
    • Add Cloud9 support
    • Add Autoscaling Plans
    • Add MQ service
    • Add From<Result<T, E>> for RusotoFuture<T, E> implementation for mocking.
    • Add ACM PCA support
    • rusoto_credential uses Serde derives for credentials instead of hand written code
    • Add MediaStore support
    • Expose raw BufferedHttpResponse on ::Unknown error variants
    • Removed Ceph test for Luminous
    • Honor profile region in Default implementation of Region
    • Fix bug that could not authenticate ARN with colon
    • Fix error parsing for services using boto's rest-json protocol published prior to this release . The following service crates were affected.
      • apigateway, batch, clouddirectory, cloudsearchdomain, cognito-sync, efs, eks, elastictranscoder, glacier, greengrass, guardduty, iot, lambda, lex-models, lex-runtime, mq, polly, serverlessrepo, workdocs, xray
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.33.0(Aug 7, 2018)

  • rusoto-v0.32.0(Mar 8, 2018)

    With this release, Rusoto is now based 100% on futures/tokio, and therefore exclusively uses non-blocking I/O.

    The CHANGELOG has all the details on this release.

    A guide to migrate from 0.31.0 can be found here.

    Happy Rusting!

    Source code(tar.gz)
    Source code(zip)
  • credentials-v0.11.0(Mar 8, 2018)

  • rusoto-v0.31.0(Jan 27, 2018)

  • rusoto-v0.30.0(Dec 3, 2017)

  • rusoto-v0.29.0(Nov 4, 2017)

  • rusoto-v0.28.0(Aug 27, 2017)

    A long overdue release. It's been 2 months since our last. We got in some great new features and some important bug fixes, so hopefully it's worth the wait. Many thanks to everyone who contributed.

    Major highlights include:

    • The long awaited merge of #627, which adds streaming support. This will make large S3 (and other) downloads easier by providing a body you can access with the Read trait. See the S3 integration tests for an example
    • Support for a Custom Region, so you can point Rusoto services at a custom (or local) REST endpoint for services like DynamoDB, SQS and any others that support it with e.g., let region = Region::Custom("localhost:9494".to_string());
    • Elimination of lots of unnecessary type aliases, which should lead to much more readable and usable generated code
    • Support for several new AWS services including:
      • Batch
      • Glacier
      • Polly
      • Mechanical Turk
      • API Gateway

    PRs:

    • #772 - Adds a Code of Conduct
    • #756 - Fixes a lot of bugs for rest_json and rest_xml services and simplifies the codegen by removing a lot of duplication
    • #771 - Fixes a bug with the new local endpoints provided by #759
    • #759 - Adds support for custom endpoints
    • #627 - Adds support for streaming response objects instead of reading everything into memory before passing it back to the user
    • #764 - Adds an integration test for the Route 53 service
    • #763 - Fixes the Route 53 service to use the single region independent endpoint AWS provides.
    • #760 - Allows unrecognized fields when reading credentials/profiles from the filesystem
    • #758 - Cleans up the hyper/reqwest dependencies for the rusoto_credential crate
    • #749 - Builds integration tests as part of our CI
    • #753 - Fixes the upload of our crate documentation
    • #750 - Removes travis-cargo from our Travis build
    • #752 - Improves our documentation by including the botocore provided service documentation as part of the crate docs
    • #745 - Per discussion in #742 removes all generated type aliases from the codegen and generated code
    • #741 - Adds support for AWS Batch
    • #674 - Adds a warning about modifying generated code
    • #746 - Adds support for Glacier
    • #744 - Adds support for Polly
    • #743 - Adds support for Mechanical Turk
    • #740 - Adds support for API Gateway
    • #739 - Updates our botocore submodule dependency to 1.5.75
    • #738 - Removes an exponential backoff and retry from the credentials provider
    • #720 - Adds a "check" command to the crategen that checks for unsupported services
    • #737 - Handles aws_security_token for backwards compatibility
    • #731 - Moves rusoto/Cargo.toml to the crate root
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.26.0(Jun 22, 2017)

    Rusoto 0.26.0 release notes

    Another big release! It's been about a month since Rusoto 0.25.0 where we shattered the crate, providing a crate for each AWS service we support. This release has 19 new AWS services added! :tada:

    A big thank-you to all our contributors helping us out.

    PRs:

    • https://github.com/rusoto/rusoto/pull/648 - update README to use Rusoto 0.25.0
    • https://github.com/rusoto/rusoto/pull/650 - allow Region type to be serialized and deserialized
    • https://github.com/rusoto/rusoto/pull/652 - fix a double-encoding bug with an S3 call
    • https://github.com/rusoto/rusoto/pull/651 - bring back SQS roundtrip integration tests
    • https://github.com/rusoto/rusoto/pull/653 - clean up old, no longer used codegen code
    • https://github.com/rusoto/rusoto/pull/655 - run generated code through rustfmt
    • https://github.com/rusoto/rusoto/pull/657 - regenerate service code, ensuring it's run through rustfmt
    • https://github.com/rusoto/rusoto/pull/663 - have generated tests have consistent order
    • https://github.com/rusoto/rusoto/pull/667 - upgrade xml-rs to 0.6
    • https://github.com/rusoto/rusoto/pull/664 - update botocore to 1.5.60
    • https://github.com/rusoto/rusoto/pull/668 - fix serialization of optional blobs
    • https://github.com/rusoto/rusoto/pull/665 - replace top-level crate with an integration tests crate
    • https://github.com/rusoto/rusoto/pull/678 - add AWS Organizations service
    • https://github.com/rusoto/rusoto/pull/672 - document use of StsAssumeRoleSessionCredentialsProvider
    • https://github.com/rusoto/rusoto/pull/682 - speed up Appveyor builds by running tests only instead of compile then test
    • https://github.com/rusoto/rusoto/pull/671 - bring codegen into service_crategen crate
    • https://github.com/rusoto/rusoto/pull/684 - let Appveyor skip service crate generation during build
    • https://github.com/rusoto/rusoto/pull/680 - expand use of services.json for codegen
    • https://github.com/rusoto/rusoto/pull/683 - adds encode_key helper for S3
    • https://github.com/rusoto/rusoto/pull/687 - fix JSON optional deserialization
    • https://github.com/rusoto/rusoto/pull/689 - add Snowball service
    • https://github.com/rusoto/rusoto/pull/690 - add StepFunctions service
    • https://github.com/rusoto/rusoto/pull/692 - add ServiceCatalog service
    • https://github.com/rusoto/rusoto/pull/691 - add AWS Support service
    • https://github.com/rusoto/rusoto/pull/693 - add Rekognition service
    • https://github.com/rusoto/rusoto/pull/694 - add OpsWorksCM (Chef Automate)
    • https://github.com/rusoto/rusoto/pull/695 - add Lightsail service
    • https://github.com/rusoto/rusoto/pull/696 - add Kinesis Analytics service
    • https://github.com/rusoto/rusoto/pull/697 - add GameLift service
    • https://github.com/rusoto/rusoto/pull/698 - add Database Migration Service
    • https://github.com/rusoto/rusoto/pull/699 - add Cost and Usage Reports service
    • https://github.com/rusoto/rusoto/pull/700 - add CodeBuild service
    • https://github.com/rusoto/rusoto/pull/701 - add Cognito Identity Provider service
    • https://github.com/rusoto/rusoto/pull/688 - add WAF Regional service
    • https://github.com/rusoto/rusoto/pull/704 - add AppStream service
    • https://github.com/rusoto/rusoto/pull/705 - add Server Migration Service
    • https://github.com/rusoto/rusoto/pull/706 - add AWS Marketplace Metering
    • https://github.com/rusoto/rusoto/pull/707 - add AWS Health service
    • https://github.com/rusoto/rusoto/pull/711 - pin rustfmt version
    • https://github.com/rusoto/rusoto/pull/713 - PR for Rusoto 0.26.0
    • https://github.com/rusoto/rusoto/pull/719 - remove generation of unused types
    • https://github.com/rusoto/rusoto/pull/717 - rest_json codegen correctly uses response headers and status codes
    • https://github.com/rusoto/rusoto/pull/709 - Remove input from json services that have no input params
    • https://github.com/rusoto/rusoto/pull/712 - Trim crate keyword if the service name is too long
    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.25.0(May 20, 2017)

    Rusoto 0.25.0

    Welcome to Rusoto 0.25.0! This is a notable release for several reasons. The most outstanding reason is we've finally landed crategen! A huge thank-you to mthjones for his hard work on that.

    What's that mean for crate users?

    The biggest change is the Rusoto crate is now deprecated. This mega-crate saw us through 34 published versions of Rusoto, 56 AWS services implemented and a lot of work from a collection of wonderful contributors. However, the crate was getting too big to build on various continuous integration/build services, where our massive crate was doing too much in one project.

    To continue implementing new services and reducing compilation times, we've extracted a few core crates and every AWS service we support now has its own crate.

    rusoto_core now contains the core functionality of Rusoto: AWS signature handling, regions, requests to services and XML helpers.

    rusoto_mock was also extracted. Crate users shouldn't need this: it's for developing on Rusoto itself.

    rusoto_credential remains its own crate, providing AWS credential sourcing. If you're working on something that uses AWS and Rusoto doesn't support it, you can use that crate instead of rolling your own AWS credential providers.

    The new service crates depend on rusoto_core.

    Migrating to Rusoto 0.25.0

    Previously, to bring in a Rusoto implementation of an AWS service, you'd specify something like this in your Cargo.toml file:

    rusoto = {version = "0.24", features = ["rds"]}
    

    Now, you'd bring in services like this:

    rusoto_core = {version = "0.25.0"}
    rusoto_rds = {version = "0.25.0"}
    

    Once the new crates have been brought in, use the new crates in your code. A sample before:

    extern crate rusoto;
    
    use rusoto::rds::{RdsClient, CreateDBInstanceMessage, DescribeDBInstancesMessage};
    use rusoto::{DefaultCredentialsProvider, Region, default_tls_client};
    

    And after:

    extern crate rusoto_core;
    extern crate rusoto_rds;
    use rusoto_rds::{Rds, RdsClient, CreateDBInstanceMessage, DescribeDBInstancesMessage};
    use rusoto_core::{DefaultCredentialsProvider, Region, default_tls_client};
    

    Note there are now two crates required: rusoto_core as well as the RDS crate, rusoto_rds. There's also a new trait for each service. In this case it's Rds and we bring that in. This is used to make calls to services easier to test and improve ergonomics of using Rusoto clients.

    PRs and changes

    PRs and changes in this Rusoto release:

    • 601 - codify which versions of Rust and OSs we support
    • 603 - adds homepage and build badges to Cargo file
    • 606 - change default integer shapetype to i64
    • 611 - fix clippy errors
    • 607 - adds SES support
    • 609 - fixes mismatched types in an S3 integration test
    • 617 - update README code sample to use latest version of Rusoto
    • 602 - smarter importing of serde_derive macro
    • 624 - adds Rust 1.16.0 as a tested/supported version for Rusoto
    • 623 - extract rusoto_core crate
    • 625 - upgrade to serde 1.0
    • 610 - add unit tests for error responses from botocore
    • 620 - adds backing trait to all services
    • 631 - fix some compilation errors when using a combination of Rusoto feature flags
    • 635 - use new Github token after the TravisCI env var leaks
    • 628 - crategen: generate a crate for each supported AWS service
    • 637 - update location of API docs to point to rusoto_core
    • 638 - use https for all documentation links
    • 626 - allow use of manually specified AWS credentials
    • 640 - move Rusoto example to rusoto_core docs
    • 639 - upgrade ring to 0.9.4
    • 641 - check in generated code for all services
    • 644 - address issues for publishing

    A warm welcome to mthjones

    @mthjones has joined the Rusoto org on Github! We're very excited to have him on board.

    One last thank you

    Rusoto has been in development for two years and is my first open source project as a maintainer. The Rust community is supportive, intelligent and welcoming. One couldn't ask for a better group of people to work with.

    Here's to another two years of Rust and Amazon Web Services! πŸŽ‰

    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.24.0(Apr 12, 2017)

    Welcome to Rusoto 0.24.0! The highlight of this release is STS support. Big thanks to @cmsd2 for his hard work getting that done.

    Changes in this release:

    • https://github.com/rusoto/rusoto/pull/589 - generated structs derive debug and clone
    • https://github.com/rusoto/rusoto/pull/577 - support S3 get bucket location
    • https://github.com/rusoto/rusoto/pull/367 - STS support! πŸŽ‰
    • https://github.com/rusoto/rusoto/pull/597 - improve CONTRIBUTING doc
    • https://github.com/rusoto/rusoto/pull/562 - store payload of result as Vec<u8>
    • https://github.com/rusoto/rusoto/pull/580 - add docs on using clippy
    • https://github.com/rusoto/rusoto/pull/584 - adds default_region function
    • https://github.com/rusoto/rusoto/pull/582 - new version of ring
    • https://github.com/rusoto/rusoto/pull/581 - use latest version of reqwest
    • https://github.com/rusoto/rusoto/pull/510 - exponential backoff for sourcing credentials from instance metadata and container metadata providers
    • https://github.com/rusoto/rusoto/pull/578 - set README sample to correct version of Rusoto
    • https://github.com/rusoto/rusoto/pull/575 - resume making Appveyor build all crate features
    • https://github.com/rusoto/rusoto/pull/574 - adds an S3 integration test to catch a regression we had
    • https://github.com/rusoto/rusoto/pull/564 - remove Cargo feature flag we don't use anymore
    • https://github.com/rusoto/rusoto/pull/569 - use raw_body to handle binary data from AWS services (simplified by https://github.com/rusoto/rusoto/pull/562 )

    A huge thank you to our contributors. You're all great people. πŸ˜„

    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.22.0(Jan 19, 2017)

    In this release:

    • https://github.com/rusoto/rusoto/pull/514 - compilation optimizations
    • https://github.com/rusoto/rusoto/pull/515 - fix param serialization bug and add tests
    • https://github.com/rusoto/rusoto/pull/505 - add more rest-xml services
    • https://github.com/rusoto/rusoto/pull/517 - update to latest version of botocore
    • https://github.com/rusoto/rusoto/pull/525 - fix api docs and gitbook links
    • https://github.com/rusoto/rusoto/pull/523 - strongly type return codes
    • https://github.com/rusoto/rusoto/pull/520 - panic during compilation if service codegen fails
    • https://github.com/rusoto/rusoto/pull/526 - add test for SQS to ensure a bug stays fixed
    • https://github.com/rusoto/rusoto/pull/528 - use latest md5 crate
    • https://github.com/rusoto/rusoto/pull/524 - use reqwest and hyper-native-tls
    • https://github.com/rusoto/rusoto/pull/531 - make TlsError public
    • https://github.com/rusoto/rusoto/pull/527 - support binary responses from AWS services
    • https://github.com/rusoto/rusoto/pull/529 - add support for S3 range query and add tests for it

    Thanks to everyone who contributed!

    Source code(tar.gz)
    Source code(zip)
  • rusoto-v0.21.0(Jan 6, 2017)

    Included in this release:

    • https://github.com/rusoto/rusoto/pull/464 - update our releasing documentation
    • https://github.com/rusoto/rusoto/pull/478 - add ca-central-1 region
    • https://github.com/rusoto/rusoto/pull/473 - reorganize our Cargo.toml feature list
    • https://github.com/rusoto/rusoto/pull/472 - have all our crates build and publish their documentation
    • https://github.com/rusoto/rusoto/pull/477 - lints and cleanups
    • https://github.com/rusoto/rusoto/pull/476 - fix nightly channel build error
    • https://github.com/rusoto/rusoto/pull/483 - add Cloudformation support
    • https://github.com/rusoto/rusoto/pull/485 - documentation update for sample code
    • https://github.com/rusoto/rusoto/pull/422 - bring back S3 bucket creation integration test
    • https://github.com/rusoto/rusoto/pull/480 - add Cloudwatch support
    • https://github.com/rusoto/rusoto/pull/489 - use new version of ring
    • https://github.com/rusoto/rusoto/pull/491 - fix build issues on beta channel
    • https://github.com/rusoto/rusoto/pull/492 - don't emit unused serde attribute
    • https://github.com/rusoto/rusoto/pull/496 - set Appveyor to use latest stable version of Rust
    • https://github.com/rusoto/rusoto/pull/499 - add us-east-2 and eu-west-2 regions
    • https://github.com/rusoto/rusoto/pull/321 - adds the last big codegen piece: rest-xml.
    • https://github.com/rusoto/rusoto/pull/502 - adds top level descriptions for error enums in rustdoc
    • https://github.com/rusoto/rusoto/pull/503 - adds multithreading to codegen
    • https://github.com/rusoto/rusoto/pull/501 - cleans up rest-xml generator
    • https://github.com/rusoto/rusoto/pull/509 - update our releasing walkthrough with how to tag individual crates

    A big thank you to all the contributors and maintainers! πŸŽ‰

    Source code(tar.gz)
    Source code(zip)
  • v0.20.0(Dec 2, 2016)

    In this release:

    • Improve S3 integration tests: https://github.com/rusoto/rusoto/pull/448
    • Fix typo in credentials documentation: https://github.com/rusoto/rusoto/pull/455
    • Add steady contributor to author list: https://github.com/rusoto/rusoto/pull/453
    • Break up credentials crate into modules: https://github.com/rusoto/rusoto/pull/434
    • Update contributing doc minimum Rust version: https://github.com/rusoto/rusoto/pull/458
    • Add ContainerProvider for ECS task IAM profiles: https://github.com/rusoto/rusoto/pull/435
    • Appveyor: cache cargo dir: https://github.com/rusoto/rusoto/pull/427
    • Update serde_macros to serde_derive: https://github.com/rusoto/rusoto/pull/457
    Source code(tar.gz)
    Source code(zip)
  • v0.19.1(Nov 25, 2016)

  • v0.19.0(Nov 23, 2016)

    Changes:

    • Dependency updates: https://github.com/rusoto/rusoto/pull/415
    • Fix some Clippy lints: https://github.com/rusoto/rusoto/pull/418
    • README updates: https://github.com/rusoto/rusoto/pull/417
    • Read AWS session tokens: https://github.com/rusoto/rusoto/pull/420
    • Fix our TravisCI builds on OSX: https://github.com/rusoto/rusoto/pull/424
    • Adds S3 integration test for timestamped named files: https://github.com/rusoto/rusoto/pull/423
    • URL encode S3 path: https://github.com/rusoto/rusoto/pull/425
    • Switch Appveyor to Rust 1.13.0: https://github.com/rusoto/rusoto/pull/428
    • Make OSX builds mandatory for TravisCI: https://github.com/rusoto/rusoto/pull/426
    • Allow setting credential file via env vars: https://github.com/rusoto/rusoto/pull/430
    • Extract credentials to their own crate: https://github.com/rusoto/rusoto/pull/433
    • Update minimum Rust version required due to upstream dependencies: https://github.com/rusoto/rusoto/pull/438
    • Add back an integration test file for S3: https://github.com/rusoto/rusoto/pull/439
    Source code(tar.gz)
    Source code(zip)
Owner
AWS SDK for Rust
null
Rs.aws-login - A command line utility to simplify logging into AWS services.

aws-login A command line utility to simplify logging into AWS accounts and services. $ aws-login use ? Please select a profile to use: β€Ί ❯ dev-read

Kevin Herrera 11 Oct 30, 2022
Rust SDK wrapper for the Mystic Light SDK

mystic_light_sdk Rust SDK wrapper for the Mystic Light SDK Requirements Any MSI device with RGB support Only Windows 7+ Dragon Center or Msi Center in

null 4 May 3, 2022
Rust client for AWS Infinidash service.

AWS Infinidash - Fully featured Rust client Fully featured AWS Infinidash client for Rust applications. You can use the AWS Infinidash client to make

Rafael CarΓ­cio 15 Feb 12, 2022
Cookiecutter templates for Serverless applications using AWS SAM and the Rust programming language.

Cookiecutter SAM template for Lambda functions in Rust This is a Cookiecutter template to create a serverless application based on the Serverless Appl

AWS Samples 24 Nov 11, 2022
πŸ“¦ πŸš€ a smooth-talking smuggler of Rust HTTP functions into AWS lambda

lando ?? maintenance mode ahead ?? As of this announcement AWS not officialy supports Rust through this project. As mentioned below this projects goal

Doug Tangren 68 Dec 7, 2021
Ref Arch: Serverless GraphQL in Rust on AWS

A Whole Hog Reference Architecture for an Apollo Federation-Ready, Serverless, Rust-Based GraphQL Microservice on AWS using Cloud Development Kit (CDK)

Michael Edelman 3 Jan 12, 2022
A Rust runtime for AWS Lambda

Rust Runtime for AWS Lambda This package makes it easy to run AWS Lambda Functions written in Rust. This workspace includes multiple crates: lambda-ru

Amazon Web Services - Labs 2.4k Dec 29, 2022
An opinionated Rust library for interacting with AWS DynamoDB single-table designs.

Modyne An opinionated library for interacting with AWS DynamoDB single-table designs. † Motive Modyne follows the precepts laid out for effective sing

Marcus Griep 14 Jun 8, 2023
An AI Toolbox for Simplified Access to AWS Bedrocks, Ollama from Rust

Hiramu Hiramu is a powerful and flexible Rust library that provides a high-level interface for interacting with various AI models and APIs, including

Raphael MANSUY 5 Apr 21, 2024
A simple workshop to learn how to write, test and deploy AWS Lambda functions using the Rust programming language

Rust Lambda Workshop Material to host a workshop on how to build and deploy Rust Lambda functions with AWS SAM and Cargo Lambda. Intro What is Serverl

Luciano Mammino 13 Mar 28, 2024
Remote Secret Editor for AWS Secret Manager

Barberousse - Remote Secrets Editor About Usage Options Printing Editing Copying RoadMap 1.0 1.1 Future About A project aimed to avoid downloading sec

Mohamed Zenadi 18 Sep 28, 2021
Easy switch between AWS Profiles and Regions

AWSP - CLI To Manage your AWS Profiles! AWSP provides an interactive terminal to interact with your AWS Profiles. The aim of this project is to make i

KubeOps Skills 14 Dec 25, 2022
Simple fake AWS Cognito User Pool API server for development.

Fakey Cognito ?? Homepage Simple fake AWS Cognito API server for development. βœ… Implemented features AdminXxx on User Pools API. Get Started # run wit

naokirin 4 Aug 30, 2022
Postgres proxy which allows tools that don't natively supports IAM auth to connect to AWS RDS instances.

rds-iamauth-proxy rds-proxy lets you make use of IAM-based authentication to AWS RDS instances from tools that don't natively support that method of a

Gold Fig Labs Inc. 10 Nov 7, 2022
A tool to run web applications on AWS Lambda without changing code.

AWS Lambda Adapter A tool to run web applications on AWS Lambda without changing code. How does it work? AWS Lambda Adapter supports AWS Lambda functi

AWS Samples 321 Jan 2, 2023
cargo-lambda a Cargo subcommand to help you work with AWS Lambda

cargo-lambda cargo-lambda is a Cargo subcommand to help you work with AWS Lambda. This subcommand compiles AWS Lambda functions natively and produces

David Calavera 184 Jan 5, 2023
cargo-lambda is a Cargo subcommand to help you work with AWS Lambda.

cargo-lambda cargo-lambda is a Cargo subcommand to help you work with AWS Lambda. The new subcommand creates a basic Rust package from a well defined

null 184 Jan 5, 2023
Managing schema for AWS Athena in GitOps-style

athena-rs Managing AWS Athena Schemas Installation $ cargo install --git https://github.com/duyet/athena-rs $ athena --help athena 0.1.0 Duyet <me@du

Duyet Le 3 Sep 25, 2022
Nitrogen - a tool for deploying web services to AWS Nitro Enclaves

Nitrogen CLI Nitrogen is a tool for deploying web services to AWS Nitro Enclaves. Given a dockerfile and an ssh key, Nitrogen will spin up an EC2, con

Cape Privacy 57 Dec 26, 2022