本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon通用运行时 (CRT) 库
Amazon通用运行时 (CRT) 库是 SDK 的基础库。CRT 是一个由独立封装组成的模块化系列,以 C 语言编写。每个封装都为不同的必需功能提供良好的性能和最小的占地面积。这些功能在所有软件开发工具包中是通用的,可提供更好的代码重用、优化和准确性。这些软件包是:
-
awslabs/aws-c-auth
:Amazon 客户端身份验证(标准凭证提供商和签名 (sigv4)) -
awslabs/aws-c-cal
: 加密原始类型、哈希(MD5、SHA256、SHA256 HMAC)、签名者、AES -
awslabs/aws-c-common
:基本数据结构、线程/同步原始类型、缓冲区管理、与 stdlib 相关的函数 -
awslabs/aws-c-compression
: 压缩算法(霍夫曼编码/解码) -
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 IoT 云服务与设备集成 -
awslabs/aws-c-mqtt
: 适用于物联网 (IoT) 的标准轻量级消息传送协议 -
awslabs/aws-c-s3
:用于与 Amazon S3 服务通信的 C99 库实现,旨在最大限度地提高高带宽 Amazon EC2 实例的吞吐量 -
awslabs/aws-c-sdkutils
: 用于解析和管理Amazon配置文件的实用程序库 -
awslabs/aws-checksums
: 跨平台硬件加速的 crc32c 和 CRC32,可回退到高效的软件实现 -
awslabs/aws-lc
:由密码Amazon学团队为Amazon及其客户维护的通用加密库,基于 Google BoringSSL 项目和 OpenSSL 项目的代码 -
awslabs/s2n
: C99 实现 TLS/SSL 协议,设计小巧、快速,将安全放在首位
CRT 可通过除 Go 之外的所有软件开发工具包使用。
CRT 依赖项
CRT 库形成了一个由关系和依赖关系组成的复杂网络。如果您需要直接从源代码构建 CRT,了解这些关系会很有帮助。但是,大多数用户通过其语言 SDK(例如适用于 C++ 的 SDK 或适用于 Java 的Amazon SDK)或他们的语言 IoT 设备Amazon SDK(例如Amazon适用于 C++ 的 IoT SDK 或适用于 Java 的Amazon IoT SDK)访问 CRT 功能。在下图中,“语言 CRT 绑定” 框是指封装特定语言 SDK 的 CRT 库的软件包。这是以下形式的软件包集合aws-crt-*
,其中 “*” 是一种 SDK 语言(例如aws-crt-cpp
aws-crt-java
下图说明了 CRT 库的分层依赖关系。
