< 返回版块

PsiACE 发表于 2023-12-08 16:39

项目 - Kondo - 为开发者设计的磁盘清理工具

kondo 是一款为开发者设计的磁盘清理工具,支持清理 16 种语言和工具链中的构建相关产物。

适用于以下场景:

💾 你想备份代码,但不想包含 几GB 的依赖项。

🧑‍🎨 你尝试过很多项目,但不希望它们继续占用太多空间。

⚡️ 你喜欢保持磁盘干净迅捷。

222950622-475bc6cc-7b91-47c2-86b2-5948bee4fe8e.png

crates.io - kondo:https://crates.io/crates/kondo

文章 - for await 和缓冲流的斗争

这篇来自 Tyler Mandry 的文章讨论了使用for await迭代异步流时可能遇到的问题,特别是与流中定义的其他原语的交互问题。作者通过一个简单的示例展示了这个问题,并提出了一种可能的解决方案。文章指出,在使用异步编程时,管理并发控制流非常重要,而这个问题展示了异步编程中的一个微妙且令人惊讶的错误。作者还提出了对现有的异步原语进行改进的建议,以提供更可靠的异步编程体验。

你能试着找出下面代码中的潜在问题吗?

async fn batch_job(db: &Database) {
    let work = run_query(db, FIND_WORK_QUERY).await;
    let work_queries = stream::iter(work)
        .map(|item| run_query(db, work_query(item)))
        .buffered(5);
    for await result in work_queries {
        upload_result(result).await;
    }
}

然而,引入Rust代码也面临一些挑战,包括将抽象层合并到上游以及维护人员的专业知识和负担等问题。讨论还涉及到 Rust 代码与 C 代码的比较以及 Rust 语言对内核的独特要求。尽管有人对将 Rust 引入内核表示担忧,但总体而言,内核社区对于在内核中采用Rust的态度是积极的,并且已经在不同的方面进行了实际的工作和讨论。

for await and the battle of buffered streams : https://tmandry.gitlab.io/blog/posts/for-await-buffered-streams/

Week In Rust 524

新一期的 Rust 周报速递发布,快来看看有哪些内容你曾经关注过 :)

This Week in Rust 524: https://this-week-in-rust.org/blog/2023/12/06/this-week-in-rust-524/


From 日报小组 PsiACE

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页