正在打开每日关注
正在打开每日关注
penso 用 Rust/GPUI 为 Herdr daemon 写原生 macOS 客户端,直接绘制终端格子与分屏,附架构与性能优化细节。
Herdr daemon 只管终端和会话,没有图形界面,这个项目补上 macOS 端窗口,把 daemon 发来的终端格子画出来。 https://t.co/7CRI0aYm9o 用 Rust 和 GPUI 写了个原生客户端,专门接你自己装好的 Herdr daemon,把 daemon 传来的终端画面连同分屏一起画出来,不另外跑终端模拟器。
是什么:penso 开发的非官方原生客户端(527 星,Apache-2.0),用 Rust 与 GPUI 0.3.6 连接用户自装的 Herdr daemon,把 daemon 传来的终端格子连同分屏画进 macOS 原生窗口,不额外运行终端模拟器或包裹 TUI。
架构与核心设计:三层结构——herdr-gpui 负责窗口、绘制与输入,herdr-client 管发现与 socket worker,herdr-protocol 定义帧格式与 surface patch;通过 bincode 帧走本地 socket 与 daemon 通信。daemon 拥有全部终端与会话状态,GUI 仅附着渲染并回传语义输入,关闭窗口不影响后台任务。浏览器标签是唯一 GUI 独有的例外,通过本地 socket 供 Agent 调用打开。
关键洞察:性能上做了字形缓存与背景批处理,未变化的终端格子零次文本整形调用,M4 Max 上悬停 p95 从约 51ms 降至 12ms、滚动从 56ms 降至 14ms;并用无 daemon 的确定性基准(160x50 密集终端、40 工作区、40 Agent)保证可复现。分发链路完整:Homebrew cask 检测归属后自动升级、Linux 提供 deb/rpm/Arch/Nix flake,含签名、公证与 Sigstore 证明。
边界与风险:与 Herdr 官方无关联;Windows 仅为实验性支持,未签名且为 console 子系统;Linux 依赖 Vulkan 与 glibc 2.39+;性能数据只测 CPU 场景构建,不含 GPU 完成与指针到屏幕延迟。