This Week in Rust
https://this-week-in-rust.org/blog/2025/11/26/this-week-in-rust-627/
EuroRust 演讲:Ergot 库中的不安全结构
深入探索 ergot 消息传递库中那些不安全的内部结构。从侵入式的链表、手动实现的虚函数表,到类型,James 将讲解如何让这个库即使在最小的设备上也能正常运行。
Ergot 是一个消息传递库,可以在各种不同尺寸的设备上运行,从大型台式机/服务器 PC 到非常小的单核微控制器,让开发者享受一个连贯的设备网络,无论设备的大小或用于连接它们的传输介质如何。 它包含类型安全的套接字 、 寻址和路由 。在最小的 MCU 尺寸配置中,它不需要内存分配器,并且与 no_std 兼容。在较大的 PC 尺寸配置中,为了性能和便利性,可以使用内存分配器。
观看:https://www.youtube.com/watch?v=33l3gNPBpzc
文章《用 Rayon 并行处理图算法》
这是一篇关于在 Rust 链接器 Wild 中利用 Rayon 并行处理图算法的介绍:
-
核心挑战:处理工作量未知的图遍历(如可达性分析),任务需动态发现且涉及共享状态修改,无法直接使用简单的并行迭代。
-
方案对比:
-
Scoped Spawning (作用域生成):利用
scope和spawn动态派发任务。优点是代码逻辑清晰、组合性极佳;缺点是闭包会导致少量的堆分配开销。 -
Channel + par_bridge :尝试用通道传递任务以减少内存分配。结果发现极难通过借用检查 (Borrow Checker),且存在死锁风险,代码结构变得僵化且不可维护。
-
最终决策 :作者决定回退到 Scoped Spawning。结论是:为了微小的性能提升而牺牲代码的可组合性和安全性是不值得的。
-
阅读:https://davidlattimore.github.io/posts/2025/11/27/graph-algorithms-in-rayon.html
讨论:https://www.reddit.com/r/rust/comments/1p7omoh/thoughts_on_graph_algorithms_in_rayon/
walrus:分布式消息流平台,比 Kafka 快
Walrus 是一个用 Rust 开发的分布式消息流平台,旨在超越 Kafka。
-
极致性能 :单节点写入达 120 万次/秒 ,利用
io_uring优化,基准测试击败 Kafka 和 RocksDB。 -
架构创新 :数据与元数据分离,Raft 仅管理元数据,数据写入不经共识算法以消除瓶颈。
-
智能运维:支持自动分段轮替与负载均衡,无需手动配置。
-
严谨验证 :使用 TLA+ 形式化验证分布式逻辑。
-
灵活性:可独立部署或作为 Rust 库嵌入使用。
仓库:https://github.com/nubskr/walrus
讨论:https://www.reddit.com/r/rust/comments/1p7mi2m/i_built_a_distributed_message_streaming_platform/
Hurl v7.1.0 更新
Hurl 是基于 Rust 开发的命令行 HTTP 测试工具),在该版本中:
-
自动美化 (核心特性):默认对 JSON 响应进行格式化和语法高亮 ,无需通过管道传输给
jq即可获得清晰易读的输出。 -
新功能增强 :新增了
isObject和isList断言(Predicates),以及utf8Decode/utf8Encode过滤器。 -
体验升级:不仅是 HTTP 客户端,更是强大的 API 测试工具,通过视觉优化进一步提升了终端调试体验。
讨论:https://www.reddit.com/r/rust/comments/1p7309p/hurl_710_the_pretty_edition/
讨论:标准库的文件写入 API 可能会静默地丢失数据
在某些文件系统(尤其是 NFS)上,close 操作可能用于刷新内部缓冲区,并可能返回写入错误。Rust 会默默地丢弃这些错误,导致数据悄无声息地丢失。
这在几年前被报告过 https://github.com/rust-lang/rust/issues/98338。
讨论:https://www.reddit.com/r/rust/comments/1p7by82/standard_library_file_writing_can_lead_to_silent/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
-
Rustcc论坛: 支持rss
-
微信公众号:Rust语言中文社区
-