查看原文
其他

AWS SDK for Kotlin 和 AWS SDK for Rust 上线!

CSDN 2023-12-12

AWS SDK for Kotlin 和 AWS SDK for Rust 上线!


编译 |梦依丹  翻译工具 | ChatGPT     
出品 | CSDN(ID:CSDNnews)

11月 27 日和 28 日,亚马逊云科技官博分别推送了《Announcing general availability of the AWS SDK for Kotlin》和《Announcing general availability of the AWS SDK for Rust》两篇博文,宣布全面推出适用于 Kotlin 和 Rust 的 SDK。

作为两门年轻的编程语言,Kotlin 和 Rust 增势喜人,在最新发布的 TIOBE 11 月编程语言排行榜中,Kotlin 已跃居 15 位,Rust 成功进入 TOP 20 的位置。

亚马逊云科技推出全面支持 Kotlin 的 SDK

亚马逊云科技从头开始设计了 Kotlin SDK,为开发者提供符合 Kotlin 语言习惯的体验,包括领域特定语言(DSL)构建器和使用协程进行异步亚马逊云科技服务调用的支持。今天的发布使开发人员可以针对 JVM 平台或 Android API Level 24+ 进行开发,未来还将支持其它平台,比如 Kotlin/Native。

在本文中,我们将介绍SDK提供的关键功能,包括DSL构建器、协程支持、分页、等待器、可插拔的HTTP层等等。
详情可参考支持路线图:https://github.com/awslabs/aws-sdk-kotlin/projects/2
为何选择Kotlin?
亚马逊云科技为何会选择从头设计 Kotlin SDK 呢?毕竟,Kotlin 可以轻松创建混合代码库,并允许开发者从 Kotlin 调用 Java 代码。已经使用 Kotlin 开发的现有亚马逊云科技客户已经以这种方式使用了 AWS SDK for Java。然而,他们相信客户将从一个专门为 Kotlin 打造的 SDK 中受益。
首先,Kotlin 提供的不仅仅是 Java 的互操作性,还包括空安全、协程、扩展函数和智能转换等更多功能。他们希望提供一个充分发挥该语言优势、符合 Kotlin 开发者习惯的 SDK。
其次,自 2019 年以来,Android 移动开发一直以 Kotlin 为主导。开发者应该能够获得一个现代化的 SDK,支持所有亚马逊云科技服务。这就是为什么 AWS SDK for Kotlin 将 Android API 24+ 作为一流目标支持的原因。实际上,AWS Amplify for Android v2 是基于 AWS SDK for Kotlin 构建的。
最后,Kotlin 并不仅限于 JVM 平台。Kotlin 多平台使开发者能够编写针对JVM、本地二进制文件(Linux、Windows、macOS和iOS)、JavaScript 和 WASM 的 Kotlin 代码。该 SDK 从一开始就作为一个多平台库开发,并且他们计划在将来支持其他目标平台。
惯用的 Kotlin
AWS SDK for Kotlin 提供了遵循类型安全构建器模式的 DSL,用于创建请求。
下面的示例展示了如何使用该 SDK 创建一个 Amazon DynamoDB 表:
DynamoDbClient.fromEnvironment().use { ddb -> ddb.createTable { tableName = "movies"
attributeDefinitions = listOf( AttributeDefinition { attributeName = "year" attributeType = ScalarAttributeType.N }, AttributeDefinition { attributeName = "title" attributeType = ScalarAttributeType.S } ) keySchema = listOf( KeySchemaElement { attributeName = "year" keyType = KeyType.Hash }, KeySchemaElement { attributeName = "title" keyType = KeyType.Range } )
provisionedThroughput { readCapacityUnits = 10 writeCapacityUnits = 10 } }}
有关 AWS SDK for Kotlin  的详细介绍,可以参考亚马逊云科技官网:https://aws.amazon.com/cn/blogs/developer/aws-sdk-for-kotlin-ga/

亚马逊云科技推出全面支持 Rust 的 SDK

除了 Kotlin,亚马逊云科技还推出了AWS SDK for Rust。

官博写道:

  • 该 SDK 提供了符合惯用方式、类型安全的 API,同时充分发挥了 Rust 语言的性能、可靠性和生产力等优势。

  • 该 SDK 支持现代化的 Rust 语言特性,如异步/等待、非阻塞 IO 和构建器。它提供对 300 多个亚马逊云科技服务的访问,每个服务都有自己的 crate。

  • 该 SDK 默认使用合理的默认设置,但也可通过扩展进行个性化定制,以适应用户的特定用例。

  • 该 SDK 还具有模块化的特性,允许用户仅为所使用的服务编译 crate。此外,该 SDK 还经过优化,具有快速高效的特性。

  • 使用 Rust SDK,用户可以快速地在 Amazon Simple Storage Service(Amazon S3)、Amazon Elastic Compute Cloud(Amazon EC2)和 Amazon DynamoDB 之间传输数据。

使用 AWS SDK for Rust 入门

开发者可以通过 crates.io 访问该 SDK。下面这个例子演示了如何使用 AWS SDK for Rust 与 DynamoDB 一起执行列出表的常见操作。此示例假设你已经安装了Rust和Cargo(如果尚未安装,可以按照这些说明安装Rust和Cargo)。

创建一个新的 Rust 项目 cargo:

cd <your-project-directory>cargo new <name-of-your-new-rust-project>

如果你是首次使用 AWS SDK,请设置亚马逊云科技服务的凭证,官方建议使用短期凭证进行身份验证。

将 SDK crate 添加到依赖项,你已经创建了新的 Rust 项目,接下来将添加一些 SDK crate 和异步运行时。在你的新项目文件的[dependencies]下面添加以下行:Cargo.toml

[dependencies]aws-config = { version = "1", features = ["behavior-version-latest"] }aws-sdk-dynamodb = "1"tokio = { version = "1", features = ["full"] }
以下是每个 crate 的功能说明:
aws-config:虽然不是必需的,但该 crate 使得创建 DynamoDB 客户端所需的配置变得容易。它将处理亚马逊云科技云服务凭证的获取,并提供有用的默认值;
aws-sdk-dynamodb:该 crate 提供了与用户希望交互的服务的客户端;
tokio:AWS SDK for Rust 实现异步 API 功能,官方推荐使用 Tokio 运行时,它在该 SDK 中得到了良好的支持。

使用 Rust SDK 列出 DynamoDB 表:

现在可以编写 主函数 main:

#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let sdk_config = aws_config::load_from_env().await; let client = aws_sdk_dynamodb::Client::new(&sdk_config); let res = client .list_tables() .limit(10) .send() .await?; println!("Current DynamoDB tables: {:?}", res.table_names()); Ok(())}

运行 cargo:

cargo run

有关  AWS SDK for Rust 的详细介绍,可访问:https://aws.amazon.com/cn/blogs/developer/announcing-general-availability-of-the-aws-sdk-for-rust/

相关链接:

  • https://github.com/awslabs/aws-sdk-kotlin

  • https://aws.amazon.com/cn/sdk-for-rust/

推荐阅读:

▶只让 ChatGPT 永远重复输出一个词,它就能告诉你很多秘密数据?!

▶小米公司:关于雷军“冰冷的 40 亿”纯属子虚乌有;谷歌 CEO 推迟 Gemini 模型发布;腾讯视频回应会员崩了|极客头条

▶从大模型落地金融业说起,生成式AI成为行业新助力

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存