【Rust日报】2024-03-21
内容提要
Rust 1.77.0版本发布,包含C-string字面量、异步函数递归、offset_of!宏稳定化等新特性。Red Hat推进Nova项目,用Rust编写的新型Linux DRM内核驱动程序。reqwest v0.12发布,升级到hyper v1,改进http2和charset等功能。Rust宏元变量表达式特性提案稳定化,增强宏的表达能力。Rust周报第539期发布。
延伸解读
Rust 1.77.0 的实用特性解读
Rust 1.77.0 虽是小版本,但带来的改进很实用。C-string 字面量让与 C 语言接口互操作更安全便捷,编译时就能检查内部 null 字节。异步递归的支持解决了以往编写递归异步函数的痛点,但需注意使用 Box::pin 等间接方式避免无限大小。offset_of! 宏的稳定化则为底层编程和 unsafe 代码提供了便利。此外,非调试配置默认启用 strip 可减小二进制体积,Clippy 的新检查有助于维护 MSRV 兼容性。
Red Hat Nova 驱动:Rust 进入内核的尝试
Red Hat 推进的 Nova 项目旨在用 Rust 编写新的 Linux DRM 内核驱动,替代 Nouveau,专为支持 GSP 的 NVIDIA GPU(Turing 及后续系列)设计。这反映了 Rust 在内核开发中的进一步应用,但项目面临 Rust 内核抽象尚未完全上游化的挑战。若成功,有望提升性能并降低维护难度,值得关注其后续进展。
reqwest v0.12 升级要点
reqwest v0.12 升级到 hyper v1,并改进了 http2 和 charset 等可选功能的按需启用,有助于减小编译时间和体积。但 HTTP/3 功能暂时被禁用,开发团队计划尽快恢复并探索其他 QUIC 后端。对于依赖 HTTP/3 的用户,需留意这一临时变化。
宏元变量表达式提案稳定化展望
Rust 宏元变量表达式特性 macro_metavar_expr 的子集(包括 count、ignore、index 和 length)正在提案稳定化,将增强宏的表达能力。该提案计划在 Rust 1.80 版本中稳定,预计 2024 年 6 月进入 Beta,7 月正式发布。宏作者可提前了解这些特性,为未来升级做准备。
Q&A
Rust 1.77.0版本有哪些新特性?
Rust 1.77.0版本新增了C-string字面量、异步函数递归、稳定化的offset_of!宏等特性。
C-string字面量在Rust中有什么用?
C-string字面量方便与需要null终止字符串的外语接口互操作,编译时会进行错误检查。
异步函数递归在Rust 1.77.0中是如何实现的?
在Rust 1.77.0中,异步函数可以递归调用自己,需使用间接方式避免函数状态的无限大小。
Red Hat的Nova项目有什么目标?
Nova项目旨在替代Nouveau驱动,提升性能并降低维护难度,专为支持NVIDIA GPU设计。
reqwest v0.12版本有哪些改进?
reqwest v0.12版本升级到hyper v1,并改进了http2和charset功能,支持按需启用或禁用。
Rust宏元变量表达式特性提案的稳定化计划是什么?
该提案计划在Rust 1.80版本中实现稳定化,预计在2024年6月进入Beta阶段,7月正式稳定。