- SignalDesk2026-09-10
项目地址: https://github.com/SunDoge/wabou 背景 当前 Rust GUI 开发现状:Tauri 带着浏览器内核,环境碎片化严重、内存重;纯 Rust GUI ( Iced/egui )省资源,但写复杂状态和联动极其痛苦,还没有 HMR 。 因此我在尝试一个折中路线:界面用 SolidJS 写,底层的布局和渲染完全交给 Rust 原生,不嵌浏览器。 架构与原理 没有 DOM ,也没有 HTML/CSS 引擎。分工很简单: [SolidJS 2 (TSX) + 业务逻辑] ↓ (QuickJS) ↓ 二进制 Mutation 协议(微任务末尾批量推送) ================================ Rust 原生运行时 - 布局:Taffy (Flexbox/Grid) - 排版:Parley - 绘制:Vello Hybrid / wgpu - 窗口:Winit 逻辑层:跑在内嵌的 QuickJS 里。Solid 的细粒度 Signal 变动只更新具体节点,不需要做任何虚拟 DOM diff 。 FFI:变动在单个 microtask 末尾打包成扁平的二进制指令,一次性推给 Rust 。 渲染层:Rust 维护 Retained Tree ,Taffy 算布局,Parley 排版,最后交给 Vello 走 GPU 绘制。支持 Vite 毫秒级 HMR 。 现状 我用它跑了几个完整应用来压测协议与渲染稳定性: Manga OCR:图片切片标注、后台 OCR 与本地翻译联动 Timestow:rustic 备份工具的快照浏览与还原客户端 Pi Agent:本地 LLM Agent 的桌面交互界面 支持多窗口、透明窗口、中文 IME 输入、终端/代码编辑器 Widget 、自定义 WGSL Shader 、以及无头( Headl
- 情报分类:项目价值、技术价值
- 命中依据:自研桌面GUI框架,有技术含量和项目分享价值
- 来源:服务器 / V2EX
- 原作者:SunDoge
- 发布时间:2026/9/10 18:06:12
- No replies yet