The std:: future:: Future of Rusoto

Rusoto, an AWS SDK for Rust, is now compatible with std:: future:: Future in a beta release, v0.43.0-beta.1.

This comes shortly after merging Rusoto’s async / .await pull request, which is likely the biggest change to Rusoto since shattering the mega-crate.

If you are using Rusoto today, please help us test this release, file issues if it doesn’t work, and tell us in Discord or email me if it does.

Three separate contributors brought Rusoto forward to modern Rust, and several others made additional contributions to improve the ergonomics of using the SDK. Thanks so much to everybody working on Rusoto.

What’s happening now

Matthew Mayer is no longer working on Rusoto. I want to thank him for maintaining a project that helped make Rust a viable programming language at Amazon.

At this point I believe I am the main active maintainer of Rusoto. I also happen to work at AWS (working on Amazon Linux and related projects). In September I asked my organization’s leadership and the Open Source Program Office to let me step up as a maintainer in the project, expecting that I would be helping out as part of my job for a few hours per week.

It is my responsibility to ensure I keep this to a few hours per week so I don’t burn myself out on the project and also don’t burn the good will of the company. Thus, maintenance on the project may be slow in the coming months unless we have more folks stepping up. (If you’re interested, please file an issue to let us know!)

Regardless of that, I want to try to set a direction for contributors. Of course, anyone can contribute what they want to see done. But if you’re looking to get started in Rusoto, these are the things that will get us closer to 1.0:

More service integration tests. Without integration tests it’s very difficult to figure out if anything works against real AWS endpoints.

Without integration tests it’s very difficult to figure out if anything works against real AWS endpoints. Better ergonomics. I want to make writing code with Rusoto less and less painful over time. Compatibility with async / .await helps us a lot there, but there is still work to be done.

I want to make writing code with Rusoto less and less painful over time. Compatibility with / helps us a lot there, but there is still work to be done. Operational parity with other SDKs. I want to make using Rusoto feel like using other AWS SDKs where we can. For example, Botocore, the Python SDK, will retry requests based on the error received. We also need to make sure credential support is on par with other SDKs. (Some of this is on me to come up with what “operational parity” even means.)