

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

# AWS 常用运行时 (CRT) 库
<a name="common-runtime"></a>

 AWS 公共运行时 (CRT) 库是的基础库。 SDKsCRT 是一个由独立程序包组成的模块化系列，用 C 语言编写。每个程序包都为不同的所需功能提供了良好的性能和最小的占用空间。这些功能是通用的，并且在所有功能之间共享， SDKs 从而提供了更好的代码重用、优化和准确性。程序包是：
+ [https://github.com/awslabs/aws-c-auth](https://github.com/awslabs/aws-c-auth): AWS 客户端身份验证（标准凭据提供程序和签名 (sigv4)）
+ [https://github.com/awslabs/aws-c-cal](https://github.com/awslabs/aws-c-cal): 加密原始类型、哈希 (、、 SHA256 HMAC) MD5、签名 SHA256者、AES
+ [https://github.com/awslabs/aws-c-common](https://github.com/awslabs/aws-c-common): 基本数据结构、 threading/synchronization 原始类型、缓冲区管理、stdlib 相关函数
+ [https://github.com/awslabs/aws-c-compression](https://github.com/awslabs/aws-c-compression)：压缩算法（哈夫曼编码/解码）
+ [https://github.com/awslabs/aws-c-event-stream](https://github.com/awslabs/aws-c-event-stream)：事件流消息处理（标头、前导信息、有效负载、crc/trailer）、在事件流上实现远程过程调用 (RPC)
+ [https://github.com/awslabs/aws-c-http](https://github.com/awslabs/aws-c-http)：C99 实现 HTTP/1.1 和 HTTP/2 规范
+ [https://github.com/awslabs/aws-c-io](https://github.com/awslabs/aws-c-io)：套接字（TCP、UDP）、DNS、管道、事件循环、通道、SSL/TLS
+ [https://github.com/awslabs/aws-c-iot](https://github.com/awslabs/aws-c-iot): C99 实现 AWS 物联网云服务与设备集成
+ [https://github.com/awslabs/aws-c-mqtt](https://github.com/awslabs/aws-c-mqtt)：适用于物联网 (IoT) 的标准轻量级消息传输协议
+ [https://github.com/awslabs/aws-c-s3](https://github.com/awslabs/aws-c-s3): 用于与 Amazon S3 服务通信的 C99 库实现，旨在最大限度地提高高带宽 Amazon EC2 实例的吞吐量
+ [https://github.com/awslabs/aws-c-sdkutils](https://github.com/awslabs/aws-c-sdkutils): 用于解析和管理 AWS 配置文件的实用程序库
+ [https://github.com/awslabs/aws-checksums](https://github.com/awslabs/aws-checksums): 跨平台硬件加速，可 CRC32c 回退到 CRC32 高效的软件实现
+ [https://github.com/awslabs/aws-lc](https://github.com/awslabs/aws-lc): 由 AWS 密码学团队根据谷歌 BoringSSL 项目 AWS 和 OpenSSL 项目的代码为其客户维护的通用密码库
+ [https://github.com/awslabs/s2n](https://github.com/awslabs/s2n)：C99 实施 TLS/SSL 协议，小巧、速度快且优先考虑安全性

除了 Go 和 Rust SDKs 之外，CRT 在所有版本中都可用。

## CRT 依赖关系
<a name="crt-dep"></a>

CRT 库构成了一个由关系和依赖关系组成的复杂网络。如果您需要直接从源代码构建 CRT，了解这些关系会很有帮助。但是，大多数用户通过其语言软件开发工具包（例如适用于 C\$1\$1 的 SDK 或 Java 的 AWS SDK）或他们的语言物联网设备 AWS 软件开发工具包（例如适用于 C\$1\$1 的 IoT SDK 或适用于 Java 的 AWS Io AWS T SDK）来访问 CRT 功能。在下图中，“语言 CRT 绑定” 框指的是封装特定语言 SDK 的 CRT 库的程序包。这是格式为 `aws-crt-*` 的程序包的集合，其中“\$1”是 SDK 语言（例如 [https://github.com/awslabs/aws-crt-cpp](https://github.com/awslabs/aws-crt-cpp) 或 [https://github.com/awslabs/aws-crt-java](https://github.com/awslabs/aws-crt-java)）。

*下图概述了 CRT 库的分层依赖关系。*

![\[CRT 依赖关系图显示了各个 CRT 库是如何相互关联的。\]](http://docs.aws.amazon.com/zh_cn/sdkref/latest/guide/images/crt-dependency-graph.png)
