AWS SDKs for Rust and Kotlin are production-ready after more than two years of development

AWS SDKs for Rust and Kotlin are production-ready after more than two years of development
Developers

AWS has made its SDKs (Software Development Kits) for Rust and Kotlin generally available and supported for production use, two years after their first public preview in December 2021. 

Unofficial Rust support for AWS services has existed at least since 2015, when Matthew Mayer and Anthony DiMarco started an independent project called Rusoto, shortly after the release of Rust 1.0, with goals including to learn Rust. Rusoto has been downloaded more than 11 million times according to stats on crates.io, the Rust crate repository. The first alpha of the AWS Rust SDK was introduced in 2021 by iliana etaoin, then at AWS, who was a co-maintainer for Rusoto.

The official Rust SDK now supports upwards of 300 AWS services and “supports modern Rust language features like async/await, non-blocking IO, and builders,” according to the introductory post.

Why has AWS also made an SDK for Kotlin, the JetBrains language which targets the JVM (Java Virtual Machine), when Kotlin can easily interop with the existing SDK for Java? According to Aaron Todd at AWS, there are three reasons. The first is to provide an SDK that “felt idiomatic to Kotlin developers” and supported Kotlin features such as null safety and extension functions. Second, Kotlin is the official language for Android development. Third, “Kotlin isn’t a JVM-only language,” says Todd. “Kotlin multiplatform allows you to write Kotlin code that targets the JVM, native binaries (Linux, Windows, macOS, and iOS), JavaScript, and WASM. The SDK was developed as a multiplatform library.

Most AWS services have REST APIs which can be called from any language, but the SDKs greatly simplify development. These new SDKs join others including C++, Go, Java, JavaScript, C#, PHP, Python, Ruby, Rust and Swift. The JavaScript SDK is actually written in TypeScript.

The shift to general availability is important to developers, even though the libraries may have worked well while in preview. A couple of months ago, a developer asked in the Rust SDK GitHub issue “is this production-ready?”, and was told that “any use in production is at your own risk. There is currently no production-level support available.” Another developer remarked at the time that “I want to use the AWS rust SDK, but for obvious reasons, it’ll be hard to get the sign-off for final release if we reach that point and we’re bound to an API that explicitly states ‘do not use this SDK for production workloads.’”

Rust and Kotlin developers on AWS will be glad that those caveats have now been removed.