

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 Rust 的 AWS SDK 使用的 crate
<a name="appendix-crates"></a>

本主题包含有关 适用于 Rust 的 AWS SDK 使用的 crate 的高级信息。这包括它使用的 Smithy 组件、在某些构建环境下可能需要使用的 crate 以及其他信息。

## Smithy crate
<a name="smithy-crates"></a>

和大多数 AWS SDK 一样，适用于 Rust 的 AWS SDK 基于 [Smithy](https://smithy.io/)。Smithy 是一种用于描述 SDK 提供的数据类型和函数的语言。然后使用这些模型来帮助构建 SDK 本身。

在查看适用于 Rust 的 SDK crate 版本及其 Smithy 依赖项的版本时，知道这些 crate 都使用[标准语义版本编号](https://semver.org/)可能会有所帮助。

有关适用于 Rust 的 Smithy crate 的更多详细信息，请参阅 [Smithy Rust 设计](https://smithy-lang.github.io/smithy-rs/design/)。

### 可与适用于 Rust 的 SDK 结合使用的 crate
<a name="crates-to-know"></a>

AWS 发布了很多 Smithy crate。其中一些与适用于 Rust 的 SDK 用户有关，而另一些则是实现细节：

`aws-smithy-async`  
如果您不使用 Tokio 来实现异步功能，请包含此 crate。

`aws-smithy-runtime`  
包含所有 AWS SDK 所需的构造块。

`aws-smithy-runtime-api`  
SDK 使用的底层接口。

`aws-smithy-types`  
从其他 AWS SDK 重新导出的类型。如果您使用多个 SDK，请使用此 crate。

`aws-smithy-types-convert`  
用于移入和移出 `aws-smithy-types` 的实用程序函数。

### 其他 crate
<a name="other-crates"></a>

存在以下 crate，但您不必了解它们：

适用于 Rust 的 SDK 用户不需要的与服务器相关的 crate：  
+ `aws-smithy-http-server`
+ `aws-smithy-http-server-python`

包含 SDK 用户不需要使用的后台代码的 crate：  
+ `aws-smithy-checksum-callbacks`
+ `aws-smithy-eventstream`
+ `aws-smithy-http`
+ `aws-smithy-protocol-test`
+ `aws-smithy-query`
+ `aws-smithy-json`
+ `aws-smithy-xml`

不受支持且将来会消失的 crate：  
+ `aws-smithy-client`
+ `aws-smithy-http-auth`
+ `aws-smithy-http-tower`