【Rust日报】2026-05-12 iroh 1.0.0-rc.0 - 首个候选发布版本
iroh 1.0.0-rc.0 - 首个候选发布版本
iroh 发布了首个 1.0 版本的候选版本(rc.0)。iroh 是一个用 Rust 编写的模块化网络协议栈,用于在设备之间建立直接连接。经过四年开发和 50 多个版本迭代后,终于迎来了首个 1.0 候选版本。
主要变更
API 优化
精简了 API 表面,消除了几乎所有来自 1.0 之前版本的类型重导出
noq(QUIC 实现)也获得了 1.0 候选版本,将与 iroh 一起稳定发布
改进了 NAT 穿透功能和修复了多个错误
功能模块迁移 为了实现独立的版本控制和发布周期,部分可选功能已迁移到独立的代码库:
DhtAddressLookup迁移至iroh-mainline-address-lookup包MdnsAddressLookup迁移至iroh-mdns-address-lookup包AccessLimit迁移至iroh-util包
API 改进亮点
路径观察 API 重新设计
将原来的
PathWatcher拆分为两个独立的基础组件:Connection::paths()- 返回当前打开路径的快照Connection::path_events()- 返回路径变化事件流
原文链接:https://www.iroh.computer/blog/iroh-1-0-0-rc-0
Ratty:一款支持内联 3D 图形的终端模拟器
核心概念
Ratty 是一个使用 GPU 渲染的终端模拟器,支持内联 3D 图形显示。它受 TempleOS 启发,使用 Rust 和 Ratatui 构建。
灵感来源
TempleOS 的独特设计:作者被 TempleOS 中 Terry Davis 设计的命令行功能所震撼——可以将图像、3D 网格和宏(可点击链接)直接插入命令行,而不仅仅是文本
命令行中的精灵图:TempleOS 允许在源代码文件中直接包含精灵数据,实现代码与图形资源的统一管理
创新理念:命令行成为一切操作的直接界面——编写代码、与系统交互和渲染图形都在同一个地方完成
技术实现
使用 Rust 编程语言
基于 Ratatui 框架
GPU 渲染支持
设计了自定义终端图形协议
项目意义
Ratty 实现了“如果终端是 3D 的会怎样”这一设想,让终端光标可以是旋转的老鼠模型,整个终端环境支持 3D 渲染。
原文链接:https://blog.orhun.dev/introducing-ratty/
Ferrous-Browser:纯Rust浏览器自动化工具
项目简介
Ferrous-browser是一个快速、异步的Rust浏览器自动化库,通过Chrome DevTools Protocol (CDP)实现,无需Node.js依赖。
核心优势
零Node.js依赖 — 纯Rust实现,单个二进制文件
异步优先 — 基于Tokio构建,无缝集成异步Rust项目
正确的多页面隔离 — 追踪CDP会话ID,避免并发页面事件交叉污染
无竞态条件 — 在触发命令前注册事件处理器
人性化API — 受Playwright启发的locator()、evaluate()等接口
主要功能
导航等待模式:
DomContentLoaded— 等待DOM解析完成Load— 等待所有资源加载(默认)NetworkIdle— 等待500ms无网络活动(适合SPA应用)
定位器API:
点击元素:
locator("button#submit").click()输入文本:
locator("input").type_text()
原文链接:https://github.com/theoxfaber/ferrous-browser
Spotify 零延迟歌词 TUI 工具 (Rust 实现)
项目背景
开发者因为无法忍受 Spotify Web API 的延迟,使用 Rust 构建了一个 Spotify 歌词工具。
技术实现要点
绕过 Web API:使用 zbus 监听用户会话中的
org.mpris.MediaPlayer2.PlayerD-Bus 接口架构设计:
使用少量 tokio actors 和 mpsc 通道
D-Bus 轮询组件
60Hz 刷新率的计时器实现平滑插值
LRCLIB 歌词获取器
ratatui 循环处理界面
开发挑战
异步编程并非最大难点
主要困难:在 NixOS 中处理 C 链接器,以生成能在其他发行版上正常运行的 100% 静态 MUSL 二进制文件
反馈需求
开发者希望获得关于 actors 之间通道同步的反馈意见