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 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论