AWS 常用运行时 (CRT) 库 - AWS SDKs和工具

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

AWS 常用运行时 (CRT) 库

C AWS ommon Runtime (CRT) 库是的基础库SDKs。CRT这是一个由独立封装组成的模块化系列,用 C 语言编写。每个封装都为不同的所需功能提供了良好的性能和最小的占用空间。这些功能是通用的,并且在所有功能之间共享,SDKs从而提供了更好的代码重用、优化和准确性。程序包是:

  • awslabs/aws-c-auth: AWS 客户端身份验证(标准凭据提供程序和签名 (sigv4))

  • awslabs/aws-c-cal: 加密原始类型、哈希 (、、SHA256HMAC) MD5、签名SHA256者、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 和 /2 规范 HTTP

  • awslabs/aws-c-io: 套接字 (TCP、UDP) DNS、管道、事件循环、通道、SSL/TLS

  • awslabs/aws-c-iot: C99 实现 AWS 物联网云服务与设备集成

  • awslabs/aws-c-mqtt:适用于物联网 (IoT) 的标准轻量级消息传输协议

  • awslabs/aws-c-s3: 用于与 Amazon S3 服务通信的 C99 库实现,旨在最大限度地提高高带宽 Amazon EC2 实例的吞吐量

  • awslabs/aws-c-sdkutils: 用于解析和管理 AWS 配置文件的实用程序库

  • awslabs/aws-checksums: 跨平台硬件加速,可CRC32c回退到CRC32高效的软件实现

  • awslabs/aws-lc: 由 AWS 密码学团队根据来自 Google Boring 项目 AWS 和 Open SSL 项目的代码为其客户维护的通用密码库 SSL

  • awslabs/s2n: C99 实施TLS/SSL协议,设计小巧快速,优先考虑安全性

除了 CRT Go 和 Rust SDKs 之外,其他所有版本都可用。

CRT依赖关系

这些CRT库构成了一个由关系和依赖关系组成的复杂网络。如果您需要CRT直接从源头构建,那么了解这些关系会很有帮助。但是,大多数用户通过自己的语言SDK( AWS SDK例如 C++ 或 Java)或其语言物联网设备SDK(例如 AWS SDK AWS 适用于 C++ 的物联网或SDK适用SDK于 Java 的 AWS 物联网)来访问CRT功能。在下图中,“语言CRT绑定” 框指的是包装特定语言CRTSDK库的包。这是形式为的软件包的集合aws-crt-*,其中 “*” 是一种SDK语言(例如aws-crt-cppaws-crt-java)。

以下是CRT库的分层依赖关系的插图。

CRT依赖关系图显示了各个CRT库是如何相互关联的。