大家好,欢迎查阅第 385 期《Rust 周报》!Rust 是一种系统语言,主要追求三个要素:安全性、并发性,以及高性能。本文是其开发进展和社区生态的每周摘要。如果您想提出意见或建议,请在推特联系我们账号 @ThisWeekInRust,或者在 github 向我们发送 PR。想参与吗?我们期待您的贡献。
Rust 社区更新
本周无论文或研究探讨。
官方
- [内部] Rust 核心团队人员变动。见本号 4 月 3 日文章。
- [Rust 基金会] 成员介绍:侯培新(译注:董事成员,华为开源软件与系统首席架构师)
- [Rust 基金会] 成员介绍:Florian Gilcher(译注:Rust 核心团队,项目主管)
简讯
- Rust OSDev 2021 年 3 月简讯
- RiB 简讯 #22
项目/工具 更新
- GCC Rust 月报 #4 2021-03
- mrustc 升级:支持 rustc 1.39.0(译注:1、mrustc 是一个 Rust 编译器的替代实现;2、目前官方 rustc 版本为 1.51.0)
- rust-analyzer 更新日志 #71
- Rust 中新的左递归 PEG 解析生成器
- Flott(Rust 中的运动控制工具包)月报 - 2021-04(译注:前景不错的新包,但 github 星星仅 3 个)
- IntelliJ Rust 更新信息
- Bevy 0.5(译注:数据驱动的游戏引擎)
观测/思考
- 将低层次 actor 模型系统与 Rust async/await 结合(1)
- Rust GC 设计中的安全追踪之旅(译注:此作者用 Rust 设计和实现了 GC 库,被集成在 Servo 浏览器,主要为 JS 层应用)
- 使用 Rust Lunatic 构建具备 WebAssembly 的 TelNet 聊天服务器
- Firefox 中消除数据竞争 - 技术报告
- 一级(first-class)IO(译注:一级(first-class)IO,即执行 I/O 的函数,可作为参数或返回值在程序中传递,如
File
。或许 first-class 不翻更好理解) - 当前程序打包发布人的安全噩梦
- 对请求排序,以加速 I/O
- 关于 Rust 中已检查异常(checked exception)的短文
- 离奇的架构设计,从开始就不要支持
- [视频] 7 天内学会 Rust OpenGL
Rust 演练
- 以 Rust 为主,构建 Python 客户端
- Rust 图形用户界面库 KAS 的简单实例(译注:文章特短,推荐对 GUI 开发感兴趣的朋友阅读)
- 如何创建最精简的 Rust Docker 镜像
- 使用 Rust 自定义(Oxidizing)Kubernetes 算子
- 从 Node.js 向 Rust 传递元组(tuple)数据,并返回运算结果
- 用 Rust 做 Kafka 开发(1)
- Rust 初学者的错误处理指南
- 使用 Seahorn 验证 Rust 程序
- Rust 中的异步数据流(1)——Futures、缓冲处理(buffering),以及难解的编译错误
- [系列] 如果 SQLite 是用 Rust 开发的,会是什么样子?(3)
- [视频] Rust 中的函数返回值
- [视频] Rust 中的 Crust:原子计算和内存排序(译注:crust 是 Rust 生态中的低层次网络库,用于优化对等连接和数据传输)
- [视频] Rust 中的 Async/Await:简介
- [视频] OpenVehicleDiag Rust 编码直播
- [视频] [系列] 易学易用 Rust——用简洁的英文进行 Rust 编程
其它
- best-of-ml-rust:Rust 机器学习库列表
- Rust 在 Android 平台的近况:Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身
- 致谢 David Tolnay
- 我的“美好未来”(译注:即【2021-04-03】Rust 核心团队人员变动文中所述:Niko Matsakis 正在逐步退出 Rust 核心团队,他将集中精力带领 Rust 语言团队。为此,Niko Matsakis 发表了此篇博文)
周最佳 crate
本周最佳 crate 是 rs-pbrt,PBRT 图书(第三版)中 C 部分代码的对应 Rust 实现。
谢谢 Jan Walter 的提议!
关于下周最佳 crate,请您提议,并投票!!
参与邀请
您一直想为开源项目做贡献,但却不知道从哪里开始吗?每周,我们都会强调一些来自 Rust 社区的任务。您可以挑选,并开始参与!
有些任务可能还有导师,请访问具体任务页面,以了解更多信息。
- dotenv-linter 有些优先级较高的 issues
如果你是 Rust 项目所有人,正在寻求贡献人员,请提交任务到这个页面。
Rust 核心更新
313 PR 在上一周被合并。
Rust 编译器性能
对于内存使用的改进来说,本周颇为重要。因为默认分配器(allocator,升级到了最新的 jemalloc)的更新,发布构建(cargo build –release)的内存使用率,平均提高了约 20%;而检测构建(cargo check)则大约提升内存使用率为 5%。
验测工作是由 @simulacrum 完成的。修正范围:4896450e..d32238
已核准的 RFCs
Rust 的改进遵循 RFC(request for comments)流程。如下是本周核准实现的 RFCs:
- RFC:声明宏的原变量表达式(Declarative macro metavariable expressions)
新的 RFCs
- RFC:预留 2021 版代号(Reserved prefixes in the 2021 edition)(译注:即
Cargo.toml
中的设置edition = "2018"
)
近期活动
线上活动
- April 7, Johannesburg, ZA - Monthly Joburg Rust Chat! - Johannesburg Rust Meetup
- April 7, Indianapolis, IN, US - Indy.rs - with Social Distancing - Indy Rust
- April 12, Denver, CO, US - Building Delightful CLI Tools in Rust by Chuck Pierce - Rust Denver
- April 13, Seattle, WA, US - Monthly Meetup - Seattle Rust Meetup
- April 13, Saarbrücken, Saarland, DE - Rust Saar 10u16
- April 20, Washington, DC, US - The Rust Borrow Checker—A Deep Dive - Rust DC
北美
- April 8, Columbus, OH, US - Monthly Meetup - Columbus Rust Society
- April 14, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta
亚太
- April 19, Wellington, NZ - IGNITION: What is Rust and why should I care? Rust at work & at play - Rust Wellington
本周引语
很遗憾,本周没有“引语”提议。
欢迎提交下周引语!
Rust 周报编辑人员:nellshamrell, llogiq、cdmistman.
谢谢您的阅读!