[Rust] Rust 官方周报 389 期(2021-05-05)
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: Rust 官方周报 389 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 389 期的技术文章中,技术演练丰富;技术基础较多,适合新手学习,熟练者温故。另外,本周最佳 crate 对可以给开发中的信息输出提供很大方便。
Topics: rust rust-官方周报 this-week-in-rust
Rust 官方周报(中文版)仓库为 github.com/zzy/this-week-in-rust-zh-cn,欢迎您的参与,一起丰富中文网络的 Rust 资源。
大家好,欢迎查阅第 389 期《Rust 周报》!Rust 是一门系统编程语言,专注于三个要素:安全性、并发性,以及高性能。本文是其开发进展和社区生态的每周摘要。如果您想提出意见或建议,请在推特联系我们账号 @ThisWeekInRust,或者在 github 向我们发送 PR。想参与吗?我们期待您的贡献。
Rust 社区更新
官方
- Rustup 1.24.1 已官宣发布,及其新特性详述
- [内部] Rustup 1.24.0 发布后的 bug 事件报告(2021-04-27)(译注:指有用户升级到 rustup 1.24.0 之后,用户无法运行
rustfmt
和cargo fmt
。因此,官方将版本恢复为 1.23.1) - [内部] Rust 1.52.0 稳定版预发布测试中,关键新特性一瞥
- [内部] 核心团队 2021 年 5 月报告(译注:指核心团队关于 2021 年路线图、团队章程,以及对 crate 的审核策略)
- [基金会] Q12021 Rust 基金会成员更新(译注:指 Facebook 成为 Rust 基金会新的白金会员;Zama、Tag1Consulting、CleverCloud 成为 Rust 基金会新的白银会员)
简讯
项目/工具更新
- 回顾 2021 年已逝的三分之一(译注:IsomorphicDB 是 Rust 实现的兼容 PostgreSQL 的分布式数据库的核心,此文是作者对其 2021 年前 4 个月的开发回顾)
- TensorBase 周报 1 期(译注:TensorBase 是基于 Rust 的现代化开源数据仓库,详细中文介绍见页面内的链接。也可以直接在张老师整理的《Rust语言开源杂志(2021)》中查阅)
- gfx/wgpu 0.8 发布(译注:原生(native)WebGPU)
- Flott(Rust 中的运动控制工具包)上月回顾 - 2021 年 5 月(译注:Rust 官方周报 385 期中介绍过的包,前景很不错,但关注人数还不多,github 星星很少)
- rust-analyzer 更新日志 #75
- GCC Rust 月报 #5 2021 年 4 月
- RustCrypto 发布公告(
aead
、cipher
、crypto
、elliptic-curve
,以及ecdsa
等等)(译注:RustCrypto 是纯粹 Rust 实现加密算法的团队)
观测/思考
- Rust 是如何让 Rayon 的数据并行(parallelism)变的神奇的?(译注:Rayon 是 Rust 实现的无数据竞争(data race)的数据并行库,笔者的项目中用到此包蛮多频次。实例请参阅来自于 rust-cookbook 的 rayon 数据并行处理)
- 使用 Rust 进行艺术创作(Making Generative Art with Rust)(译注:图形处理、媒体制作等,可以结合
gfx/wgpu
等库一起理解) - 过程宏(Proc Macro)阐述:为我节省了大约 4000 行 Rust 代码
- 最被低估,但非常有用的 Rust 标准库类型
- 保持独特性;或者说,内部测试为什么让人伤脑筋
- 让我们用 Rust 重写那些伟大的软件吧(The Great Rewriting in Rust)(译注:作者确信 Rust 会接管
Linux
内核开发,重写LaTeX
,以及蓝牙等) - 关于 async Rust 和使用
!Send
类型的经历 - 以 Rust 编译器(Compilers)为师
- 使用 Rust 进行艺术创作(Making Generative Art with Rust):Alexis André 访谈
- 站在巨人的肩膀上:TensorFlow 和 Rust 的组合
- 让一切皆可迭代 - 在 Rest API 中进行迭代分页
- [视频] Niko Matsakis 访谈,Rust 语言团队的联席领导
Rust 演练
- Rust 生态中的 gRPC 介绍
- Pinephone 中的 I2C(译注:Pinephone 是 Manjaro 推出的预装 Linux 的智能手机)
- 午夜忏悔(Late Night Confessions) — 使用 Rust、Rocket、Diese,以及 Askama 进行站点构建(3)
- Rust 之所有权(ownership)和借用(borrow)- 和借用检查器(borrow-checker)的战斗(译注:推荐,不论老鸟新手,都会有收获)
- 在 Android 上运行 Rust(译注:笔者去年就试过,很折腾)
- 使用 GDB 和 defmt 调试嵌入式程序
- Rust 中的数据建模
- Rust 中的数据建模 - 续篇
- 将 Rust 代码嵌入 Java Jar,以进行分发(译注:github 有完整的实例)
- 使用 KAS GUI 开发计数器和计算器(译注:
kas
是受 Qt 启发的 Rust GUI 库) - [中文] [系列] 基于 Async Rust 构建 GraphQL 服务,使用 tide + async-graphql + mongodb(3)- 重构
- [中文] [系列] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(2)- 查询服务
- [视频] Crust of Rust:调度(Dispatch)和宽指针(Fat Pointer)
- [视频] Ockam | 开源软件(OSS)社区对话(Community Call)| 2021 年 4 月
论文/研究探讨
- Rust 实现的 Buer Loader 新变体(New Variant of Buer Loader)
- 在安全、稳定的 Rust 中,编写零开销(overhead-free)循环数据结构(data-structures),是否可能?
其它
- Rust 生态中,最不知名的贡献者和轶事
- Rust 基金会迎来新的白金会员:Facebook
- Rust 在 Facebook 的应用简史
- 自 Rust 1.46 到 1.51,rustc 性能提升比较
- 微软加入字节码联盟(Bytecode Alliance),以推进
WebAssembly
- 也就是说,在浏览器中即可运行C/C++/Rust
的编译代码(译注:字节码联盟(Bytecode Alliance)由 Mozilla 携手英特尔等公司成立于 2019 年末,以扩展WebAssembly
)
周最佳 crate
本周最佳 crate 是 display_utils,具备可展示
的结构体的库,让字符串操作更容易。
译注:使用蛮方便,笔者已经使用过。可以通过一个简单示例看看带来的方便,比如此官方示例
for
循环代码:for (i, item) in list.iter().enumerate() { if i == list.len() - 1 { println!("{}", item); } else { print!("{} - ", item); } }
使用
display_utils
库,可以简化为一行:println!("{}", display_utils::join(list, " - "));
谢谢 kangalioo 的提议。
参与邀请
您一直想为开源项目做贡献,但却不知道从哪里开始吗?每周,我们都会强调一些来自 Rust 社区的任务。您可以挑选,并开始参与!
有些任务可能还有导师,请访问具体任务页面,以了解更多信息。
如果你是 Rust 项目所有人,正在寻求贡献人员,请提交任务到这个页面。
Rust 核心更新
Rust 编译器性能
安静的一周,没有显著变化。
验测工作是由 @simulacrum 完成的。修正范围:537544..7a0f178
已核准的 RFCs
Rust 的改进遵循 RFC(request for comments)流程。如下是本周核准实现的 RFCs:
新的 RFCs
近期活动
线上
- May 6, New York, NY, US - Rust Lightning Talks - Rust NYC
- May 11, Seattle, WA, US - Monthly meetup - Seattle Rust Meetup
- May 11, Saarbücken, Saarland, DE - Meetup: 11u16 (virtual) - Rust Saar
- May 12, Online - Rust Meetup May 2021 - Rust Malaysia
- May 15 - June 7, Online - Solana Season Hackathon - Registration open now
- May 17, 2021, Cardiff, UK - Rust and Cpp Cardiff :: v2.0 - Rust and C++ Cardiff
- May 20, 2021, Online - Go vs Rust | Round table discussion
如果你正在运作一次 Rust 活动,请将其添加到日历中,以便在此处提及。请向 Rust 社区团队发送电子邮件,以获取访问日历权限。
Rust 招聘信息
Fiberplane
- 远程 - Rust Engineer
Paige
Netlify
- 远程或旧金山 - Senior Backend Engineer (Go/Rust)
e.ventures
- 远程/美洲 - Rust backend engineer
ConsenSys
Spacemesh
- 远程 - Rust Developer
DEX Labs
Kollider
- 远程 - Junior Backend Engineer
- 远程 - Senior Backend Engineer
- 远程 - DevOps Engineer
Ockam
Kraken
通过 @ThisWeekInRust,tweet 信息给我们,以便于我们在此处列出你的招聘信息!
本周引语
使用 R 语言或 Numpy(译注:Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算)就像开运动跑车似的:你只要转动方向盘,踩油门,然后“燃烧”轮胎。而 Rust,以及其它系统语言,就像获得了一艘宇宙飞船。你可以去梦想的地方,做一些你在开运动跑车时做梦也想不到的事情。Rust 更难驾驶,但可能性似乎是无限的!由于 Rust 生态系统仍在发展中,这种感觉好像是:你的宇宙飞船的零部件,装在标有“需要某些组件”的盒子里。
谢谢 Phlopsi 的提议!
Rust 周报编辑人员:nellshamrell, llogiq、cdmistman。
谢谢您的阅读!