Rust Pin大起底

最近这个 Pin 的事情在 Rust 圈里可能是风头正劲,很多人都发文章来讨论这个事。当时决定要用这个 Pin 的人就是 boats,他把 Pin 的来龙去脉做了一个非常系统性的梳理。这篇文章非常热乎,就是这几天写的。原文链接在这里。我们来看它的内容。

我把这篇文章的标题理解为”Pin 大起底”。当然这篇文章他后面还要写一篇文章,讲到了 Pin 类型以及更一般化讲到这个 Pin 的概念。

Pin 是 Rust 的异步编程生态系统的基础构建模块之一。遗憾的是它也是异步 Rust 中最难理解、最容易让人产生误解的部分。其实如果我们看的这个 Pin 够多,用的足够多的话,现在也不认为他是难理解,也不认为它容易产生误解。我认为是它难用,理解是理解的,如果了解的足够多的话,应该不会产生误解,难用才是它比较讨厌的地方。

5 traits your Rust types must implement

https://www.youtube.com/watch?v=Nzclc6MswaI

五个你的Rust类型绝对应该实现的标准库特性

特别是如果你要将你的类型作为公共接口的一部分来暴露。你看,Rust的孤儿规则规定你不能为外部类型实现外部特性。这意味着你的库的用户将无法自己实现这些特性,除非他们创建一个包装类型,这是很烦人的。而且,如果没有访问类型的内部结构,他们可能甚至无法写出合理的实现。你最不希望看到的就是有人尝试使用你的Rust库然后放弃。这五个特性提供了Rust使用者期望你的类型具有的基本功能,幸运的是,它们都可以被派生。在视频的最后,我会介绍第六个你的类型绝对应该实现的特性,它不是标准库的一部分,所以请一定要坚持到最后。

Use Arc Instead of Vec

https://www.youtube.com/watch?v=A4cKi7PTJSs

在这个视频中,我想讨论为什么你可能会考虑在Rust代码中使用Arc<[T]>而不是Vec作为合理的默认选择。这可能有点争议,所以让我稍微解释一下。

Arc<[T]>对于不可变数据来说可能是一个很好的选择。如果你构建了一个大的数据序列,之后不再修改,你可以考虑使用Arc<[T]>。它非常适合存储在结构体、数组或集合中的数据,或者是需要到处传递的数据。我不是在讨论那些作为局部变量快速收集的Vec,或者仅用于一些快速临时存储的Vec。我指的是你要长期存储的数据,你可以考虑使用Arc<[T]>,特别是对于实现了Clone trait的数据。

RustConf 2023 - Async building blocks: A streaming Data Drama in Three Acts

欢迎来到异步构建模块,这是一个分为三幕的流式数据戏剧。或者正如Nell在上一次演讲中所称的那样,是一场异步戏剧或类似的东西。所以,请原谅我。

简单介绍一下我自己。我从2018年开始使用Nix。我也是Nix文档团队的成员,在那里我领导一个工作组。如果你看过Nix文档,我很抱歉。我还是一家名为Flox的公司的工程师,该公司正在Nix之上构建工具,这样你就不必真正了解Nix就能从中受益。但是,关于我的介绍就到此为止。今天,我只是你们谦卑的讲述者。这个故事是关于一个名叫Mary的消息。

正如我所说,这是关于异步构建模块,而不是异步材料科学,所以我们不会深入探讨任何特定的主题。有一个与此相关的示例应用程序在GitHub上,链接将在最后提供。

RustConf 2023 - Too many cooks or not enough kitchens?

https://www.youtube.com/watch?v=n0VeZRTZFxE&list=PL85XCvVPmGQgR1aCC-b0xx7sidGfopjCj&index=22

https://www.slideshare.net/slideshow/too-many-cooks-or-not-enough-kitchens/260988186

好的,欢迎来到会议的最后一场。你们快到终点了。我不知道你们怎么想,但我真的很享受看到其他演讲者正在用Rust做的所有令人惊叹的事情,我也被这次活动的包容性所震撼。本着这种精神,为了我们视力不佳的朋友,我还要提一下,我是一位矮小的白人中年女性,今天我要讲的是开放文化和学习环境,以及为什么同时拥有这两者如此困难。

RustConf 2023 - Infrastructure for Rust

本篇是对 RustConf 2023中的Infrastructure for Rust这一视频的翻译与整理, 过程中为符合中文惯用表达有适当删改, 版权归原作者所有.


我今天要和大家讨论支持Rust及Rust项目的基础设施。Rust是一门令人惊叹的语言,我非常喜欢它,看到它的普及度和社区的成长令人非常满意。但从项目背后的基础设施来看,这种增长带来了一些挑战,如果我们希望Rust在未来几十年成为基础技术,我们就需要解决这些挑战。这就是我今天要讨论的内容。