项目 - Kondo - 为开发者设计的磁盘清理工具
kondo 是一款为开发者设计的磁盘清理工具,支持清理 16 种语言和工具链中的构建相关产物。
适用于以下场景:
💾 你想备份代码,但不想包含 几GB 的依赖项。
🧑🎨 你尝试过很多项目,但不希望它们继续占用太多空间。
⚡️ 你喜欢保持磁盘干净迅捷。
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
社区学习交流平台订阅:
评论区
写评论还没有评论