← 文章 / 开源项目
InfoQ 5小时前 · 2026-09-22 16:05:36 · 2 阅读

Rustls 十周年:发展历程、基准测试与未来路线图

Rustls 是一个用 Rust 语言编写的、据信内存安全的传输层安全(TLS)库。近日,它迎来了十周年纪念日,并发布了一篇回顾文章,详细阐述了其演变历程、社区成长以及未来路线图。该项目始于 2016 年 5 月,其后迅速发展,实现了广泛的站点互操作性,并于同年晚些时候发布了 0.1.0 版本。在随后的十年间,外部贡献和定向资助——尤其是通过互联网安全研究组(ISRG)的 Prossimo 计划、亚马逊云科技以及由 CNCF 支持的 Cure53 第三方审计——帮助该项目加速了开发进程,引入了安全审计,并整合了后量子密码学、FIPS 认证和加密 ClientHello 等现代功能。

该项目的开发流程明显已经成熟,从由Brian SmithDirkjan Ochtman 等独立贡献者推动的草根运动,转变为由专职维护者支持、资金可持续的开源项目。这种资金支持使得项目团队能够全职致力于项目健壮性提升、架构重构以及合规功能开发。

该项目近期的发展轨迹以 0.23 系列的发布为基石,通过多次不破坏兼容性的更新保持了稳定性。在RedditHacker News 等平台的开发者社区中,用户们认可了这种可靠性,并且指出,0.23 系列版本发布周期的一致性——持续进行了数十次不破坏兼容性的迭代——是 API 管理严谨有序的明证。采用者们经常强调将其集成到更广泛的工具链和 Web 基础设施中所产生的实际效益。

在 x86_64 架构上针对 Rustls(版本 0.23.37)、OpenSSL(版本 3.6.1)以及 BoringSSL 所做的性能基准测试对比中,Rustls 每核每秒可以完成 2357 次完整握手,表现优于 OpenSSL 的 1713 次(慢 1.38 倍)和 BoringSSL 的 1302 次(慢 1.82 倍)。在恢复握手方面,Rustls 以每核每秒 7249 次领跑,而 BoringSSL 为 5687 次(慢 1.28 倍),OpenSSL 为 3780 次(慢 1.92 倍)。在吞吐量方面,Rustls 每秒每核接收 7333 兆字节,超过了 OpenSSL 的 6238 和 BoringSSL 的 6218(两者均慢 1.18 倍)。在数据发送方面,BoringSSL 以每核每秒 7565 兆字节的速率略微领先(比 Rustls 快 1.02 倍),而 Rustls 的处理速度为每核每秒 7421 兆字节,超过了 OpenSSL 的 5844 兆字节(慢 1.27 倍)。

在这个非常稳固的基础之上,即将发布的 0.24 版本将带来旨在提升性能、灵活性和生态系统集成的重大架构变革。其中一项主要改动是通过新增的 trait TlsInputBuffer 转向外部缓冲:输入数据不再直接通过标准 I/O trait 传输,而是通过这一新增的机制进行接收,而输出则追加到用户提供的向量中。这使得就地解密成为可能,并消除了冗余的内存复制。此外,0.24 版本还通过会话类型解决了异步编程问题,这些类型按顺序对握手状态进行建模,允许握手以阻塞、异步或基于完成事件的(completion-based)模式运行。

为了在全双工工作负载下实现最佳性能,0.24 版本引入了一项独特的“拆分模式”。该功能最初由社区于 2019 年提出。此前,单个连接对象同时处理发送和接收操作。在拆分模式下,握手后的流量被解耦为两个对象 SendTraffic 和 ReceiveTraffic,分别实现 Send 接口。由于这些对象可以利用低争用率的内部反向通道在不同的线程上独立运行,所以处理全双工流量的应用程序可以有效地将吞吐量提高一倍。

此外,0.24 版本将加密提供程序拆分为独立的 crates(例如 rustls-aws-lc-rs 和 rustls-ring),从而消除了因构建特性统一化而导致的 panic 错误,并允许从外部配置全局提供程序。

随着 0.24 系列版本的稳定发布,维护者计划过渡到专为长期维护而设计的 1.0 API 稳定版。

原文链接:https://www.infoq.com/news/2026/09/rustls-one-decade/

原始来源: InfoQ

评论 (0)