< 返回版块

苦瓜小仔 发表于 2026-01-01 16:03

Tags:日报

reqwest 发布 v0.13:默认开启 rustls

reqwest v0.13 的发布标志着该库向 “全栈 Rust”“生态稳定性” 迈出了一大步。通过默认集成 rustls 和支持 http 1.0,它进一步简化了 Rust 网络编程的入门门槛和维护成本。

TLS 后端转向 rustls: 这是本次更新最显著的变化。在此之前,reqwest 默认使用 native-tls(依赖于操作系统的 TLS 实现,如 Windows 的 SChannel、macOS 的 Security Framework 或 Linux 的 OpenSSL)。

为什么要换?

  • 减少编译依赖native-tls 经常因为 Linux 环境下缺少 OpenSSL 开发库而导致编译失败。rustls 是纯 Rust 实现,不需要安装系统级的 C 库。
  • 跨平台一致性:无论在什么系统上开发,行为都更加统一。
  • 内存安全:利用 Rust 的特性提供更安全的 TLS 实现。
  • 更易于交叉编译:不再需要复杂的交叉编译工具链来处理 C 库。

reqwest v0.13 正式支持并迁移到了 http crate 1.0:这是一个长期的里程碑,意味着 Rust 网络生态的基础类型(如 Request, Response, HeaderMap 等)已经趋于稳定,减少了不同库之间由于版本不一致导致的兼容性问题。

HTTP/3 支持增强:虽然 HTTP/3 仍然被标记为实验性功能,但在 v0.13 中得到了显著改进:

  • 现在可以更方便地开启 HTTP/3 支持。
  • 底层使用了 h3 库,提升了连接性能和稳定性。

其它重要更新:

  • Wasm 增强:持续改进对 WebAssembly 的支持,使其在浏览器环境下的表现更接近原生环境。
  • 性能优化:通过内部重构和依赖升级,进一步降低了 CPU 和内存的开销。
  • API 调整:由于主版本号升级,一些旧的、不推荐使用的 API 被移除或替换,以保持接口的整洁。

如何处理迁移?

  • 如果您想继续使用系统 TLS:如果你因为某些特殊原因(如需要读取系统特定的证书库)必须使用 native-tls,你需要在 Cargo.toml 中显式关闭默认功能并启用 native-tls
    reqwest = { version = "0.13", default-features = false, features = ["native-tls", "default-tls"] }
    
  • 直接升级:对于大多数开发者,直接将版本号改为 0.13 即可,你会发现编译过程变得更加顺滑(不再报 OpenSSL 缺失的错误)。

阅读:https://seanmonstar.com/blog/reqwest-v013-rustls-default/

演讲《Automotive Rust, amateur style》

本次讲座中没有车辆受到损坏:用业余玩家风格进行车载 Rust 开发。

车载软件名声不好。爱车人士认为它太过抽象,难以修改;而对于软件爱好者来说,它又过于晦涩难懂,文档也不完善。

Rust 帮助我们找到了中间的最佳平衡点,让我们能够编写出与车辆交互的有意义的软件,同时还能享受 Rust 提供的开发者体验。

演讲者:Frank Lyaruu 架构师兼软件多面手。Rust 程序员。Java 资深开发者。可持续计算倡导者。WebAssembly 爱好者。偶尔直播嵌入式 Rust 应用。

观看:https://youtu.be/4sYzxv6YijI

讨论:是否已经拥有了“官方”支持的 gRPC 实现?

Rust 是否已经拥有了“官方”支持的 gRPC 实现,以及它的生产就绪程度如何?

  • Google 的官方库:Google 的 grpc 组织下确实有一个 grpc-rust 项目,但讨论指出该项目长期以来并不是 Rust 社区的首选。它通常被认为不够“Rustacean”(不符合 Rust 习惯),且维护频率不如社区驱动的项目。
  • 社区事实上的标准:绝大多数回复者一致认为,虽然没有 Google 盖章的“官方”称号,但 tonic 已经成为了 Rust 生态中“事实上的官方标准”
    • 原生实现:它是基于 hyper(HTTP/2)、prost(Protocol Buffers)和 tokio(异步运行时)纯 Rust 编写的,没有复杂的 C 语言库绑定。
    • 性能与安全性:受益于 Rust 的内存安全和异步模型,tonic 在性能测试中表现极佳,且能很好地集成到 Rust 的各种中间件(Tower 驱动)中。
    • 易用性:通过 tonic-build,开发者可以非常方便地从 .proto 文件生成高性能的代码。

阅读:https://www.reddit.com/r/rust/comments/1pzkd63/are_we_official_grpc_yet/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页