[Rust] Rust 官方周报 388 期(2021-04-28)
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: Rust 官方周报 388 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 388 期的技术文章中,技术深入分析较多,适合精读类不少。另外,本周最佳 crate 对代码调试很有用。
Topics: rust rust-官方周报 this-week-in-rust
Rust 官方周报(中文版)仓库为 github.com/zzy/this-week-in-rust-zh-cn,欢迎您的参与,一起丰富中文网络的 Rust 资源。
大家好,欢迎查阅第 388 期《Rust 周报》!Rust 是一门系统编程语言,专注于三个要素:安全性、并发性,以及高性能。本文是其开发进展和社区生态的每周摘要。如果您想提出意见或建议,请在推特联系我们账号 @ThisWeekInRust,或者在 github 向我们发送 PR。想参与吗?我们期待您的贡献。
Rust 社区更新
本周无论文或研究探讨。
官方
- Rustup 1.24.0 已官宣发布,及其新特性详述
- [内部] Rust 编译器团队对成员 Aaron Hill 的祝贺
- [基金会] 成员介绍:Josh Stone(译注:项目主管,质量团队)
- [Foundation] 成员介绍:Lars Bergstrom(译注:董事成员,谷歌)
简讯
项目/工具更新
- rust-analyzer 更新日志 #74
- IntelliJ Rust 更新 #146
- Lemmy 发布 v0.11.0 版(译注:
lemmy
是 Rust 技术栈为主实现的,类似于Reddit
、Lobste.rs
,或Hacker News
) - simdutf v0.1.1 - 语义版本的一小步,性能提升的一大步(译注:基于 simdjson 的实现,simd 加速和 UTF8 验证)
- 好玩有趣的 itch.io 线上益智游戏,适用于 Windows 和 Linux,界面外观精美。感谢 Rust 社区,创造了了如此棒的语言和生态工具
观测/思考
- 基于 evcxr 的 Rust 交互式笔记本(notebook):David Lattimore 访谈(译注:
evcxr
是eval()
的 Rust 实现,David Lattimore 是 Rust Jupyter 的核心创造者。Rust Jupyter 开源在谷歌公司仓库) - Rust 中的迭代器(iterator)及零成本抽象(Zero Cost Abstractions)的开销(附带视频,译注:此文和 C#、Java 语言做了比较,值得一读)
- Rust 中移动(move)构造函数(constructor):有可能吗?(译注:要用到
unsafe
,值得一读) - basedrop:Rust 生态中,适用于实时音频的垃圾收集器
- TurboWish 路线规划(1):目标(译注:嗯,名字很吸引人,但爪子?目前只是 crate 名字的占位符,大家还需期待)
- TurboWish 路线规划(2):功能特性(译注:同上,作者的规划和思考)
- Rust 中路径解析的痛点(译注:篇幅不长的好文,关于网络路径及其疯狂的百分比编码,此文推荐一读)
- 若果今天你可以重新设计 Rust,你会做哪些改变?(译注:讨论火热,大部分是其它语言而来的惯性)
- 实际上,“红色”函数和“蓝色”函数都是合理的(译注:红色/蓝色函数象征同步/异步函数,函数的
颜色(colored)
源自 JavaScript,比喻 JavaScript 和其它语言中,同步函数和异步函数那些令人痛苦的不匹配难题。本文是对上期文章《Rust 语言中,让异步函数和同步函数匹配,不是什么大问题》的回应)
Rust 演练
- Rust 中,使用 BBS+ 创建隐私保护(privacy-preserving)签名
- 午夜忏悔(Late Night Confessions) — 使用 Rust、Rocket、Diese,以及 Askama 进行站点构建(2)(译注:站点名本无需翻译,但这个站名象电影名字,不由得手痒 ;-))
- 如何在 Rust 中自定义测试套件(Test Harness)
- Rust 生态中的 gRPC 介绍
- [Rust 中,打印格式化(Pretty Printer)的 Postgres SQL(2)](v)
- [系列] Rust 旅程
- [中文] [系列] 基于 Async Rust 构建 GraphQL 服务,使用 tide + async-graphql + mongodb(2)
- [中文] [系列] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(1)
- [视频] Rust 是什么?为什么说 Rust 很重要?
- [视频] Rust 中使用
Iterator::colect
- [视频] RustConf 2020 - jam1garner 开发的更具生产力/更高效的宏(Macros)
论文/研究探讨
其它
- Linus Torvalds 访谈:Linux 和 Git
- 编程语言现状:JavaScript 拥有最多开发人员,但 Rust 增长最快
- 部分 tensorboard 正在使用 Rust 重写,性能提升了 100-400 倍(译注:早在 2015 年 12 月,tensorflow 即提供了 Rust API,但并不活跃)
- 我们可在 Rust 中获得有保障的尾递归(Tail Calls)么?
- Rust 项目的 GitHub Actions 最佳实践
周最佳 crate
本周最佳 crate 是 cargo-rr,cargo
子命令,“时光旅游”式的代码 rr
调试器。
谢谢 Willi Kappler 的提议。
译注:非常有用,代码调试体验更好。如下示例:
> cargo rr test my_test thread 'main' panicked at 'assertion failed: `(left == right)` left: `1`, right: `2`', tests/tests.rs:100 test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.06s
还有重放功能:
> cargo rr replay (rr) continue thread 'main' panicked at 'assertion failed: `(left == right)` left: `1`, right: `42`', tests/tests.rs:100 test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.06s
参与邀请
您一直想为开源项目做贡献,但却不知道从哪里开始吗?每周,我们都会强调一些来自 Rust 社区的任务。您可以挑选,并开始参与!
有些任务可能还有导师,请访问具体任务页面,以了解更多信息。
jsonschema-rs:格式化关键字的用户定义验证(译注:jsonschema 是 JSON 模式(schema)验证器的 Rust 实现。它将模式编译为验证树,以便尽可能快地进行验证)
如果你是 Rust 项目所有人,正在寻求贡献人员,请提交任务到这个页面。
Rust 核心更新
Rust 编译器性能
本周编译器境况不错,没有任何回退,并有 2 个小进步 🎉🎉.
验测工作是由 @rylev 完成的。修正范围:6df26f8..537544
已核准的 RFCs
Rust 的改进遵循 RFC(request for comments)流程。如下是本周核准实现的 RFCs:
无
新的 RFCs
近期活动
线上活动
- April 28, Online - Ockam Open Source Community Call - Rust 中构建端到端加密通信的实时编码演练
- May 3, 2021, Online - Cloud Native Rust Day
- May 4, 2021, Online - Cloud Native WASM Day
- May 4, 2021, Dublin, IE - Rust Dublin May Remote Meetup - Rust Dublin
- May 4, Buffalo, NY, US - Buffalo Rust User Group, Tues May 4th - Buffalo Rust Meetup
- May 11, Seattle, WA, US - Monthly meetup - Seattle Rust Meetup
如果你正在运作一次 Rust 活动,请将其添加到日历中,以便在此处提及。请向 Rust 社区团队发送电子邮件,以获取访问日历权限。
Rust 招聘信息
Collabora
Paige
Confio GmbH
CoBloX
Gattaca
Wallaroo
Parity Technologies
Kollider
Chainflip
- Rust / C++ Backend Engineer (Berlin, DE)
- Security Engineer (Berlin, DE)
- Junior/Mid Backend Rust/C++ Developer (Melbourne, AU)
Kraken
通过 @ThisWeekInRust,tweet 信息给我们,以便于我们在此处列出你的招聘信息!
本周引语
此错误消息不真实(UNREAL)
谢谢 Nixon Enraght-Moony 的提议!
Rust 周报编辑人员:nellshamrell, llogiq、cdmistman。
谢谢您的阅读!