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 之间通道同步的反馈意见
项目地址:https://github.com/Jirevelaz/sptlrx-rs
原文链接:https://github.com/Jirevelaz/sptlrx-rs
评论区
写评论还没有评论