[Rust] Rust 官方周报 390 期(2021-05-12)
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: Rust 官方周报 390 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 390 期的技术文章中,技术演练丰富。并且,本期在 Rust 游戏开发和区块链上,进行了发力。
Topics: rust rust-官方周报 this-week-in-rust rust-游戏开发 rust-区块链
Rust 官方周报(中文版)仓库为 github.com/zzy/this-week-in-rust-zh-cn,欢迎您的参与,一起丰富中文网络的 Rust 资源。
关于周报中的资源链接,已经有中文资源的,替换为中文资源链接(中文资源中,均附有原文链接)。另外,对于部分周报文章,附有阅读和简单了解后的译注,但并非全部。如果你阅读了文章,有更适合的见解,请联系、PR,或者直接参与项目 github.com/zzy/this-week-in-rust-zh-cn。
大家好,欢迎查阅第 390 期《Rust 周报》!Rust 是一门系统编程语言,专注于三个要素:安全性、并发性,以及高性能。本文是其开发进展和社区生态的每周摘要。如果您想提出意见或建议,请在推特联系我们账号 @ThisWeekInRust,或者在 github 向我们发送 PR。想参与吗?我们期待您的贡献。
Rust 社区更新
官方
- Rust 2021 版次工作计划(译注:每月计划,2021 年 4 月计划请参阅文章 Rust 2021 版本特性预览,以及工作计划)
- Rust 1.52.1 已正式发布,及其新特性详述
- Rust 1.52.0 已正式发布,及其新特性详述
简讯
- Rust 游戏开发(GameDev)月报 #21 - 2021 年 4 月(译注:游戏非常精美,随意截图如下)
- RiB 简讯 #23 - 使用 Rust 重写?
项目/工具更新
- rust-analyzer 更新日志 #76
- Knurling-rs 更新日志 #24:3 次发布,
defmt-test
支持更多项目,以及解决了一个让人生厌的问题(译注:Knurling-rs 主要致力于嵌入式 Rust 体验) - TensorBase 周报 2 期(译注:TensorBase 是基于 Rust 的现代化开源数据仓库,详细中文介绍见页面内的链接)
- Naga 着色器(shader)转换的基准测试(译注:naga 是一个实验性的着色器转换库,用于 WebGPU,以及 gfx-rs 项目,一个高性能、无绑定的图形 API)
- egui 发布版本 0.12 - 一个简单的 GUI 库(译注:支持多种样式主题,蛮漂亮)
- GCC Rust 每周状态报告 14(译注:gcc 的 Rust 实现,还处于早期的阶段,并不能实际编译)
- Rust + Android 的集成开发设计(译注:Rust 和 Android 集成开发的官方设计,包括:无需嵌套的(nested)构建系统、用过程宏(proc_macro)而无需构建脚本(build.rs)、以 crate 形式生成源码,以及动态链接 crate 等)
- Alpha Launch - 亚马逊公司新开发的 Rust SDK
- Gleam v0.15 发布(译注:Servo 的 OpenGL 绑定和封装)
- IsomorphicDB 未来之路(译注:IsomorphicDB 是 Rust 实现的,兼容 PostgreSQL 的分布式数据库的核心)
- 我的第一个 Rust crate,pretend(译注:pretend 是基于宏的 HTTP 客户端)
观测/思考
- 将 Rust 用在前端和后端(译注:MoonZoon 作者 Martin Kavík 的访谈,MoonZoon 演示看起来还不错,作者说其是
NO Javascript、NO CSS、NO HTML、NO REST、NO GraphQL、NO SQL、NO Analysis Paralysis、NO Wheel Reinventing、NO Passwords*
的 Rust 全栈开发框架) - 为什么我们应当将 Rust 用于嵌入式开发?
- 编写地道的(idiomatic)Rust 代码
- 使用 Rust 优化 7000 个 CPUs
- 通过 Bors 提升我们开发时的信心和效率(译注:此处说的 Bors 是一个 github 的应用/bot,用于将 PR 整合到 master 分支)
- 提高 DataFusion 4.0 中的数据并行层次(译注:DataFusion 是以 Apache Arrow 作为内存模型的内存查询引擎)
- 我对 Rust 的第二印象,以及为什么我认为 Rust 是最佳通用语言
- 渐进地将一个小型 Python 项目迁移到 Rust
- [视频] Rust 验证(Verification)研讨会 2021 - Ferrite:用于消息传递协议验证的 Rust EDSL
- [视频] Rust 验证(Verification)研讨会 2021 - RustBelt:快速潜入深渊
- [视频] Rust 验证(Verification)研讨会 - Polonius
- [视频] Rust 验证(Verification)研讨会 - Rust 对安全和关键环境的兴趣
- [视频] Rust 验证(Verification)研讨会 - 利用编译器中介(Intermediate)表征进行多/跨语言验证
Rust 演练
- BABE – 共识算法及其实现(译注:BABE 全称是 Blind Assignment for Blockchain Extension,指在验证节点之间运行,并确定新块生产者的区块生成机制)
- Substrate 中的“托盘”,以及在运行时(runtime)中使用它们(译注:Substrate 框架允许节点运行时(runtime)开发者在模块中声明特定于领域的逻辑,称之为“托盘”)
- 如何在 DigitalOcean 部署 Rust web 应用?
- 学习 Rust #4: 使用强类型(strong types)解析 JSON
- 如何使用 Rust web 框架 Warp?
- Ray Tracing in One Weekend(译注:一个 CC0 协议的周末系列丛书,源码可下载)
- 过程宏之错误处理
- 使用 arena 分配器(allocators)加速算法
- 使用 Rust 和 Actix 构建 REST 及 Web Socket API
- 在 CI 中构建与老版本 GLIBC 一起工作的 Rust 二进制程序
- [中文] [系列] 基于 Async Rust 构建 GraphQL 服务,使用 tide + async-graphql + mongodb(4)
- [中文] [系列] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(3)
- [视频] Rust 中的 Graphs:什么是 Graph?Rust 中如何表述它们?
- [视频] Rust 验证(Verification)研讨会 2021 - 窥视编译器内部数据(基于乐趣和裨益)
- [视频] Rust 验证(Verification)研讨会 2021 - 确保 Rust 不会崩溃(crash)
- [视频] Rust 验证(Verification)研讨会 2021 - crux-mir:Rust 中的符号(Symbolic)测试
- [视频] Rust 验证(Verification)研讨会 2021 - Rustv:不安全(Unsafe)Rust 的半自动(semi-automatic)验证
- [视频] Rust 验证(Verification)研讨会 2021 - 使用受约束的(constrained)Horn 解算器实现不安全(Unsafe)Rust 的自动验证
- [视频] Rust 验证(Verification)研讨会 2021 - Prusti - Rust 的演绎式验证
- [视频] Rust 验证(Verification)研讨会 2021 - Creusot:Rust 验证软件的原型工具
- [视频] Rust 验证(Verification)研讨会 2021 - hacspec:简洁、可执行、可验证的高可靠性密码学规范
其它
- 使用 Rust 进行创新
- 那些事情是 C++ 能做到的,而 Rust 却做不到?(2021 版)
- [视频] Rust 借用检查器(borrow checker)— 深入研究 @ Rust DC, April 20, 2021 w/ Nell Shamrell-Harrington
周最佳 crate
本周最佳 crate 是 tokio-console,类似 “top” 的实用工具(译注:Linux top 命令),用于查看任务的运行情况。
谢谢 Simon Farnsworth 的提议。
参与邀请
您一直想为开源项目做贡献,但却不知道从哪里开始吗?每周,我们都会强调一些来自 Rust 社区的任务。您可以挑选,并开始参与!
有些任务可能还有导师,请访问具体任务页面,以了解更多信息。
- advent_of_code_traits - 提升默认的
run
方法的效率 - compress-tools-rs - 由于连接失败,无法在Windows上静态编译,退出代码(exit code)1120
如果你是 Rust 项目所有人,正在寻求贡献人员,请提交任务到这个页面。
Rust 核心更新
Rust 编译器性能
总体上,没有太大的变化——回归和改进都很少。除了对 PR #83278 中 libcore 的编译时进行了 2 倍改进之外。
验测工作是由 @pnkfelix 完成的。修正范围:7a0f..382f
已核准的 RFCs
Rust 的改进遵循 RFC(request for comments)流程。如下是本周核准实现的 RFCs:
新的 RFCs
近期活动
线上
- May 12, Online - Rust Meetup May 2021 - Rust Malaysia
- May 13, Berlin, DE - Rust Hack and Learn - Berline.rs
- 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 18, 2021, Washington, DC, US - Mid-month Rustful: rust4ml - Rust DC
- May 19, 2021, Vancouver, BC - Rust Study/Hack/Hang-out night - Vancouver Rust
- May 20, 2021, Online - Go vs Rust | Round table discussion
- May 20, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust
如果你正在运作一次 Rust 活动,请将其添加到日历中,以便在此处提及。请向 Rust 社区团队发送电子邮件,以获取访问日历权限。
Rust 招聘信息
Paige
Impero
Zimpler
Yat Labs
Kollider
TrueLayer
- Rust Backend Engineer (London, UK)
- Rust Backend Engineer (Milan, Italy)
- Rust Engineering Lead (London, UK)
- Rust Engineering Lead (Milan, Italy)
Aleph Alpha
Kraken
ChainSafe
通过 @ThisWeekInRust,tweet 信息给我们,以便于我们在此处列出你的招聘信息!
本周引语
除非你愿意花上几个星期的时间,使用 Rust 构建一些应用。否则,你不会喜欢 Rust。最初阶段,陡峭的学习曲线充满挑战,可能会让人沮丧——不过这取决于你对它的看法。但这个阶段一旦过去,你很难做到不喜欢 Rust。毕竟,Rust 是个有超能力的孩童 💗
谢谢 Phlopsi 的提议!
Rust 周报编辑人员:nellshamrell, llogiq、cdmistman。
谢谢您的阅读!