【Rust日报】2026-01-01 reqwest 发布 v0.13:默认开启 rustls
内容提要
reqwest v0.13 发布,默认集成 rustls,简化 Rust 网络编程。更新包括减少编译依赖、增强内存安全和 HTTP/3 支持。迁移时可选择继续使用 native-tls 或直接升级。Rust 生态中,tonic 成为 gRPC 标准,性能优越且易用。
关键要点
-
reqwest v0.13 发布,默认集成 rustls,简化 Rust 网络编程。
-
TLS 后端转向 rustls,减少编译依赖,增强内存安全。
-
reqwest v0.13 正式支持 http crate 1.0,减少兼容性问题。
-
HTTP/3 支持增强,底层使用 h3 库提升连接性能和稳定性。
-
Wasm 支持持续改进,性能优化降低 CPU 和内存开销。
-
API 调整,移除旧的、不推荐使用的 API。
-
迁移时可选择继续使用 native-tls 或直接升级。
-
tonic 成为 Rust 生态中的 gRPC 标准,性能优越且易用。
-
tonic 基于 hyper、prost 和 tokio,纯 Rust 实现,性能与安全性优越。
-
通过 tonic-build,开发者可方便地从 .proto 文件生成代码。
延伸解读
rustls 的优势
reqwest v0.13 默认集成 rustls,意味着开发者可以享受到更高的内存安全性和跨平台一致性。rustls 是纯 Rust 实现,避免了对系统级 C 库的依赖,减少了编译时的复杂性,尤其是在 Linux 环境下。这一变化使得 Rust 网络编程的门槛降低,适合更多开发者使用。
HTTP/3 的实验性支持
虽然 HTTP/3 在 reqwest v0.13 中得到了增强,但仍被标记为实验性功能。开发者在使用时应注意可能存在的不稳定性和兼容性问题。建议在生产环境中谨慎使用,确保进行充分的测试,以避免潜在的连接问题。
迁移注意事项
在迁移到 reqwest v0.13 时,开发者可以选择继续使用 native-tls 或直接升级。若选择使用 native-tls,需在 Cargo.toml 中进行相应配置。对于大多数开发者,直接升级将简化编译过程,避免 OpenSSL 缺失的错误,建议优先考虑直接升级。
tonic 的崛起
tonic 已成为 Rust 生态中的事实标准,尽管没有 Google 的官方支持。其基于 Rust 的实现方式和优越的性能使其在 gRPC 领域受到广泛认可。开发者在选择 gRPC 实现时,可以优先考虑 tonic,尤其是在需要高性能和安全性的场景中。
延伸问答
reqwest v0.13 的主要更新内容是什么?
reqwest v0.13 默认集成 rustls,简化 Rust 网络编程,减少编译依赖,增强内存安全,并支持 HTTP/3。
为什么 reqwest 选择将 TLS 后端转向 rustls?
因为 rustls 是纯 Rust 实现,减少了编译依赖,提供跨平台一致性和内存安全,且更易于交叉编译。
如何从旧版本迁移到 reqwest v0.13?
可以选择在 Cargo.toml 中显式关闭默认功能并启用 native-tls,或直接将版本号改为 0.13 进行升级。
reqwest v0.13 对 HTTP/3 的支持如何?
HTTP/3 在 v0.13 中得到了显著改进,底层使用 h3 库,提升了连接性能和稳定性。
tonic 在 Rust 生态中的地位如何?
tonic 已成为 Rust 生态中的 gRPC 标准,性能优越且易用,基于 hyper、prost 和 tokio 纯 Rust 实现。
reqwest v0.13 的 Wasm 支持有什么改进?
持续改进对 WebAssembly 的支持,使其在浏览器环境下的表现更接近原生环境。