专栏首页Rust语言学习交流【Rust 日报】2021-09-26 RustConf 2021 项目精选

【Rust 日报】2021-09-26 RustConf 2021 项目精选

RustConf 2021 项目精选

以下项目来自 RustConf 2021。

移动构造函数:有可能吗?

“自引用” 类型是一种对自身引用的类型;异步 Features 是当今 Rust 中最常见的自引用类型。但是,它们不能在不使引用无效的情况下移动,因此常被固定在堆或栈上。你不能返回它们或将之放入 Collection(当然了不用 Boxing)。C++ 通过移动构造函数大量使用可安全移动的自引用类型,将移动构造函数桥接到 Rust 是 C++ FFI 未解决的重大问题之一。使用对 Pin P 保证的新颖解释,我们将所有 C++ 构造函数(而不仅仅是移动构造函数)移植到 Rust,而不影响 Rust 的「使用后移动」保护(C++ 所缺乏的)。今天,稳定的 Rust 完全支持按移动返回和集合,除了零成本的 C++ FFI,Rust 的 “构造函数” 还可用于在纯 Rust 中表达新颖的数据结构。

视频:(4) RustConf 2021 - Move Constructors: Is it Possible? by Miguel Young de la Sota - YouTube

在 Rust 中不要过度优化的重要性

Rust 编程语言具有许多高级功能,可以实现一些出色的优化。对于新的 Rust 开发人员来说,这些既令人兴奋又令人沮丧。因为 Rust 允许我们编写经验丰富的 Rust 开发人员可以理解的高度优化的代码,所以很容易一直这样做。本演讲将展示这些优化通常对于获得优于 Python 等高度动态语言的性能来说是不必要的。对于新的 Rust 开发人员来说,打破过度优化的诱惑可以提高 Rust 的生产力和满意度。

视频:(4) RustConf 2021 - The Importance of Not Over-Optimizing in Rust by Lily Mara - YouTube

模糊驱动开发

有时候你可以想出一种简单的方法验证正确性,但很难找到单元测试的实际示例。你知道「对于所有 x 都成立」但是无法为 x 想出好的可能性。这就是依靠模糊测试可以通过提供一些代码尚未涵盖的真实示例来快速推动开发的地方。本演讲我们将一起完成使用 cargo fuzz 的过程,以构建一个可以压缩 JSON Patch 操作的快速程序,涉及 Rust 社区的一些实用程序/库(模糊测试工具,serde_json 等),以及学习一些关于在开始模糊测试时你可能会有什么样的误解。

视频:(4) RustConf 2021 - Fuzz Driven Development by Midas Lambrichts - YouTube

使用 Rust 写最快的 GBDT 库

本演讲将分享作者优化梯度提升决策树机器学习算法的 Rust 实现的经验。通过代码片段、堆栈跟踪和基准测试,探索如何使用 rayon、perf、cargo-asm、编译器内在函数和 unsafe rust 来编写一个 GBDT 库,该库的训练速度比用 C/C++ 编写的类似库更快。PS:作者是个美女。

视频:(4) RustConf 2021 - Writing the Fastest GBDT Library in Rust by Isabella Tromba - YouTube

Twitter 工程师使用 Rust 重构的故事

三名工程师,在不同的方面,各自采用自己的方法将 Rust 添加到 C 代码库中,每个人都越来越雄心勃勃。最初只是想用同样快速的 Rust 实现替换服务器的网络和事件循环。我们会重用 C 中的许多核心组件,然后从 Rust 中调用它们。肯定不会有那么多代码...... Pelikan 是 Twitter 用于内存缓存的开源和模块化框架,允许我们用单个代码库替换 Memcached 和 Redis 分支并获得更好的性能。在 Twitter,我们运行数百个缓存集群,在内存中存储数百 TB 的小对象。内存缓存至关重要,需要性能、可靠性和效率,本演讲将分享在 Pelikan 工作的冒险经历以及如何用 Rust 重写它。

视频:(4) RustConf 2021 - Whoops! I Rewrote It in Rust by Brian Martin - YouTube

五个鲜为人知的属性增强你的代码

属性是 Rust 语言中最有用和最方便的特性之一,它使程序员能够自动推导 Trait,在几分钟内设置测试套件,并有条件地为不同平台编译代码。但是在标准库的内部和外部,还有许多其他有用的属性,它们常常被忽视。

视频:(4) RustConf 2021 - Supercharging Your Code With Five Little-Known Attributes by Jackson Lewis - YouTube

编译时协调

你可以写出好的代码,我可以,但是我们可以一起编写正确的代码吗?今天普通开发者面临的最困难的问题不是算法或框架。错误通常在代码间发现。项目包含必须在任何地方遵守但未在任何地方指定的规则。它们是惯例、部落知识和最佳实践。让我们了解 Rust 如何让编写在文件、crates 和人员之间代码的一致变得更容易。这是关于如何停止踩到每个人的脚趾并学会爱上 borrow checker 的故事。

视频:(4) RustConf 2021 - Compile-Time Social Coordination by Zac Burns - YouTube

Hacking Rustc

编译器通常被视为一个令人生畏的 “黑匣子”,只有少数人才能理解。实际上,编译器 “只是” 另一种类型的程序。只要你知道编译器是用什么语言编写的,编译器编译的语言是什么,并且有时间,你也可以处理它们。如果你曾经对修改编译器感兴趣,或者遇到了一个真心希望尽快修复的错误,那么这是卷起袖子自己动手的机会,因为我们将介绍 rustc 上的 hacking 基础知识。

视频:(4) RustConf 2021 - Hacking rustc: Contributing to the Compiler by Esteban Kuber - YouTube

完整内容可以查看:This Week in Rust 409 · This Week in Rust

全栈 Rust:包含示例的 Tutorial

本 Tutorial 是一个简单的全栈 Web 应用,包含具有数据库支持的 REST 后端和基于 Wasm 的单页应用程序前端。具体是构建一个简单的宠物主人应用程序,使用户能够添加主人和他们的宠物。程序需要将所有者和他们的宠物列表提供详细视图,能够根据需要删除和添加宠物。

教程涵盖以下内容:

  • 创建一个全栈的 Rust APP
  • 常用功能
  • 构建 REST 后端
  • 前端实现
  • 测试

教程地址:Full-stack Rust: A complete tutorial with examples - LogRocket Blog

Rust For Javaer

写给 Java 程序员的 Rust 介绍 Tutorial。包括以下内容:

  • 简介
  • Rust 构建和运行
  • Rust 变量
  • Rust 默认的不可变性
  • Rust 函数
  • Rust if/else 和表达式
  • Rust 字符串
  • Rust 结构体(Java 类)
  • Rust 结构体函数(Java 静态函数)
  • Rust 结构体方法(Java 方法)
  • Rust Trait(Java 接口)
  • Rust 数组(Java 数组)
  • Rust 元组
  • Rust Vec
  • Rust 枚举(Java 枚举)
  • Rust Match
  • Java 17 Switch 表达式(Rust Match)
  • Rest Generics
  • Rust Option(vs Null/Optional)
  • Rust Result(Java Exception)

非常不错的介绍,值得一看看。

视频地址:(4) Rust for Java Developers - YouTube

eztd:让 Rust 更易学习

项目致力于『可学习性和可控制』,目标包括:

  • 低语法噪声
  • 对 Python 开发者熟悉
  • 允许优化内循环
  • 与 Rust 生态互操作

设计指南:eztd/CONTRIBUTING.md at main · epage/eztd

GitHub:epage/eztd: Source code spell checker

网址:Learnability of Rust


From 日报小组 长琴

社区学习交流平台订阅:

  • Rustcc 论坛:支持 rss
  • 微信公众号:Rust 语言中文社区

本文分享自微信公众号 - Rust语言学习交流(rust-china),作者:太子长琴

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RustConf 2021: 迈向广泛应用的征程

    北京时间 2021 年 9 月 15 日,一年一度的 Rust 语言官方大会 RustConf 2021 圆满结束。

    深度学习与Python
  • 【Rust日报】2020-08-21 RustConf研讨会在线举办

    Oxigraph是一个实现了SPARQL标准的图数据库。宗旨是为了实现一个基于RockDB和Sled的K/V仓库的兼容的,安全的,快速的图数据库。由Rust语言...

    MikeLoveRust
  • 前端食堂技术周刊 2021-10-02

    大家好,我是你们的食堂老板童欧巴。又到了每周周刊的时间,在这里祝堂友们国庆快乐!

    童欧巴
  • AkShare-股票数据-个股新闻

    数据科学实战
  • 特洛伊之源| 在 Rust 代码中隐藏无形的漏洞

    今天 Rust 官方安全应急响应工作组发布了 Rust 编译器安全公告(CVE-2021-42574)[1] ,宣称该工作组被告知 Rust 编译器存在一个安全...

    张汉东
  • 【Rust 日报】2021-05-06 tokio-console: 一个新的异步Rust调试工具

    因此需要对这部分升级的代码进行回归,具体原由看这里:https://github.com/rust-lang/rust/issues/84958

    MikeLoveRust
  • 【Rust日报】2021-02-17 - Rust 圆桌年话

    Rust 语言作为一门新兴语言,从2015年发布以来,收获了不少关注度。Rust 目前也逐渐进入了成熟的阶段。并且在2021年02月08号,Rust 基金会也宣...

    MikeLoveRust
  • 【Rust 日报】2021-10-27 我的 Rust 项目工作流

    这是一个博客系列。作者 Jimmy Hartzell 是一个高频量化领域的长时间的 C++ 程序员和指导员。在他使用了一段时间 Rust 后,他认为 Rust ...

    MikeLoveRust
  • 【Rust日报】2021-03-02 启动 OpenRA-rs 项目

    内容:OpenRA 是开源重制版红警,不过目前已经实现的部分只是红警1,红警2尚未完成。目前OpenRA是用C#写的。我们来憧憬一下,如果OpenRA用Rust...

    MikeLoveRust
  • 《 Rust 中文精选》2021年第二期正式发布

    时光易逝,转眼二月即将过去,春暖花开的三月即将到来。过年的余味犹在,但我们不得不继续踏上征途。

    张汉东
  • Rust 2020 路线图

    继续为Rust的目标而努力:Rust,一门赋予每个人构建可靠且高效软件能力的语言。

    张汉东
  • Linux之last命令

    原文链接:https://rumenz.com/rumenbiji/linux-last.html

    入门笔记
  • 【Rust 日报】2021-05-16 Rust 六岁啦

    2021年5月15日是Rust六岁生日(从2015年 1.0 版本算起),在这过去的六年里发生了许多变化,但Rust没有什么不同,依然没有基金会,没有Const...

    MikeLoveRust
  • 【Rust日报】2021-06-25 rsproxy.cn - 字节跳动新的 Rust 镜像源

    字节跳动的小伙伴搞的,希望能帮助建设国内的 rust 生态,感兴趣的话可以试用,无任何限速(实际上是 1000Gbps)。

    MikeLoveRust
  • 关于 ZoomEye-python 更新这件事

    不知道大家是否还记得 Heige 的这篇文章 《使用 ZoomEye 寻找 APT 攻击的蛛丝马迹》,Heige 在文章中阐述利用 ZoomEye 开放的历史数...

    Seebug漏洞平台
  • 【Rust日报】2021-02-27 Rust 常量泛型 MVP beta版

    常量泛型(const generics)是Rust最受期待的功能之一,其从最初RFC被接受至今已有三年了,现在其第一个版本已经在Rust beta版本中提供,并...

    MikeLoveRust
  • 【Rust日报】 2021-03-09 Meetup - Rust游戏开发

    现在可以用Rust版的Coreutils (cp, chmod, ls, rm, tail, install..) 来运行Debian啦。

    MikeLoveRust
  • 【Rust日报】 2019-07-09:「官方」async-await状态报告 #2

    使用--offline意味着Cargo不会更新其索引。Cargo将使用缓存索引重新解析依赖关系图,并且更喜欢使用已缓存的crates版本。如果可以只使用缓存的c...

    MikeLoveRust
  • 【Rust日报】2021-01-01 2021新年快乐!Rust 1.49发布!

    这是2020年第一期日报,Rust日报小组祝大家新的一年身体健康,工作顺利,Rust学得越来越好!2021年也是Rust很关键的一年,我们也将会迎来新的2021...

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券