からaws-sdk-rustへ
Rust LT Online #4
だれですか?

@IgnorantCoder
IgnorantCoder
● Rust / C++ / C# / TypeScript / Python
● Handii, Inc.
     とはなんであったか

- 永らくAWS SDK for Rustのデファクトであった

- 2015 Aug がfirst release (Rust自体のstableのファーストリリースが2015 May!) 

- first release時はAmazon SQSのサポートのみ 

- そもそも、なんであったかというと

- @matthewkmayerが 1. Rustを学ぶこと 2. AWSに対する理解を深めるというものだった 

- 2020 Janに目的を達成したよというブログがポストされる 

- 2021 Janについにメンテモードに!

aws-sdk-rustの誕生

- Rusotoのメンテナーだった@ilianaが2020 Febにブログを投稿

- 内容は async/await シグネチャに対応したよという内容 

- 最もアクティブなメンテナーである自分はAWSで働いているよ 

- 他の言語のsdkくらい操作性を高めていきたい 

- 2021 May aws-sdk-rustのalpha版がリリース!

- 基本的には他の言語と同様にSmithyの定義ファイルから生成 

- 7つのサービスのサポートからスタートして、現在41のサービスをサポート 

Rusotoとaws-sdk-rustの比較

Rusoto aws-sdk-rust
Generate code from botocore’s API definition Smithy
Counts of supported 161 41
Status Maintenance Alpha
License MIT Apache 2.0
rusotoとaws-sdk-rustの比較

#[tokio::main]
async fn main() -> Result<(), rusoto_core::RusotoError> {
let client = rusoto_dynamodb::DynamoDbClient::new(rusoto_core::Region::UsEast1);
let req = rusoto_dynamodb::ListTablesInput {
limit: Some(10),
..Default::default()
};
let resp = client.list_tables(req).await?;
Ok(())
}
rusotoとaws-sdk-rustの比較

#[tokio::main]
async fn main() -> Result<(), aws_sdk_dynamodb::Error> {
let client = aws_sdk_dynamodb::Client::from_env();
let req = client.list_tables().limit(10);
let resp = req.send().await?;
Ok(())
}
参考

Matthew Mayer. Farewell to Rusoto.

https://matthewkmayer.github.io/blag/public/post/farewell-rusoto

iliana etaoin. The std::future::Future of Rusoto.

https://linuxwit.ch/blog/2020/02/the-future-of-rusoto/

iliana etaoin. A New AWS SDK for Rust - Alpha Launch.

https://aws.amazon.com/jp/blogs/developer/a-new-aws-sdk-for-rust-alpha-launch/



おしまい

Rusotoからaws-sdk-rustへ