Appendix: Rust crates used by the SDK - AWS SDK for Rust

Appendix: Rust crates used by the SDK

This appendix contains advanced information about the crates used by the AWS SDK for Rust. This includes the Smithy components it uses, crates you might need to use under certain build circumstances, and other information.

Smithy crates

The AWS SDK for Rust is based on Smithy, like most of the AWS SDKs. Smithy is a language used to describe the data types and functions offered by the SDK. These models are then used to help build the SDK itself.

When looking at versions of the SDK for Rust crates and those of its Smithy dependencies, it might be helpful to know that these crates all use standard semantic version numbering.

For additional detailed information about Smithy crates for Rust, see Smithy Rust Design.

Crates used with the SDK for Rust

There are a number of Smithy crates published by AWS. Some of these are relevant to SDK for Rust users, while others are implementation details:

aws-smithy-async

Include this crate if you're not using Tokio for asynchronous functionality.

aws-smithy-runtime

Includes building blocks required by all AWS SDKs.

aws-smithy-runtime-api

Underlying interfaces used by the SDK.

aws-smithy-types

Types re-exported from other AWS SDKs. Use this if you use multiple SDKs.

aws-smithy-types-convert

Utility functions for moving in and out of aws-smithy-types.

Other crates

The following crates exist, but you should not need to know anything about them:

Server-related crates that SDK for Rust users don't need:
  • aws-smithy-http-server

  • aws-smithy-http-server-python

Crates that contain under-the-hood code that SDK users don't need to use:
  • aws-smithy-checksum-callbacks

  • aws-smithy-eventstream

  • aws-smithy-http

  • aws-smithy-protocol-test

  • aws-smithy-query

  • aws-smithy-json

  • aws-smithy-xml

Crates that are unsupported and will go away in the future:
  • aws-smithy-client

  • aws-smithy-http-auth

  • aws-smithy-http-tower