本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 通用运行时 (CRT) 库
Amazon 通用运行时 (CRT) 库是 SDK 的基础库。CRT 是一个由独立程序包组成的模块化系列,用 C 语言编写。每个程序包都为不同的所需功能提供了良好的性能和最小的占用空间。这些功能在所有 SDK 中都是通用和共享的,可提供更好的代码重用、优化和准确性。程序包是:
-
awslabs/aws-c-auth: Amazon 客户端身份验证(标准凭据提供程序和签名 (sigv4)) -
awslabs/aws-c-cal:加密原始类型、哈希(MD5、SHA256、SHA256 HMAC)、签名者、AES -
awslabs/aws-c-common: 基本数据结构、 threading/synchronization 原始类型、缓冲区管理、stdlib 相关函数 -
awslabs/aws-c-compression: 压缩算法(Huffman encoding/decoding) -
awslabs/aws-c-event-stream: 事件流消息处理(标头、前奏、有效负载 crc/trailer)、通过事件流实现远程过程调用 (RPC) -
awslabs/aws-c-http: C99 实施 HTTP/1.1 和规范 HTTP/2 -
awslabs/aws-c-io: 套接字(TCP、UDP)、DNS、管道、事件循环、通道、 SSL/TLS -
awslabs/aws-c-iot: C99 实现 Amazon 物联网云服务与设备集成 -
awslabs/aws-c-mqtt:适用于物联网 (IoT) 的标准轻量级消息传输协议 -
awslabs/aws-c-s3:C99 库实现与 Amazon S3 服务的通信,旨在最大限度地增加高带宽 Amazon EC2 实例的吞吐量 -
awslabs/aws-c-sdkutils: 用于解析和管理 Amazon 配置文件的实用程序库 -
awslabs/aws-checksums: Cross-platform 硬件加速的 crc32c 和 CRC32,可回退到高效的软件实现 -
awslabs/aws-lc: General-purpose Amazon 密码学团队根据谷歌 BoringSSL Amazon 项目和 OpenSSL 项目的代码为其客户维护的密码库 -
awslabs/s2n: C99 TLS/SSL 协议的实施,这些协议的设计既小又快,将安全作为优先事项
CRT 可通过除 Go 和 Rust 之外的所有 SDK 获得。
CRT 依赖关系
CRT 库构成了一个由关系和依赖关系组成的复杂网络。如果您需要直接从源代码构建 CRT,了解这些关系会很有帮助。但是,大多数用户通过其语言软件开发工具包(例如适用于 C++ 的 SDK 或 Java 的 Amazon SDK)或他们的语言物联网设备 Amazon 软件开发工具包(例如适用于 C++ 的 IoT SDK 或适用于 Java 的 Amazon Io Amazon T SDK)来访问 CRT 功能。在下图中,“语言 CRT 绑定” 框指的是封装特定语言 SDK 的 CRT 库的程序包。这是格式为 aws-crt-* 的程序包的集合,其中“*”是 SDK 语言(例如 aws-crt-cppaws-crt-java
下图概述了 CRT 库的分层依赖关系。