Skip to content

@matthewkmayer matthewkmayer released this May 20, 2017 · 1754 commits to master since this release

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! 🎉

Assets 2
You can’t perform that action at this time.