DeskPet
桌面伴宠应用:一只透明、置顶的小猫常驻屏幕边缘,用克制的陪伴提醒你喝水、起身。
角色 · 独立开发 2026 桌面应用 / Tauri 技术栈 · Tauri 2 / Rust / React / TypeScript
一只小猫坐在你的屏幕边上,陪伴着你一起工作学习:透明背景、永远置顶、可以拖着走。它会休息、散步、被你抱起、跟你说话、偶尔出门——并在合适的时候,温柔地提醒你喝口水、站起来活动一下。

内置娇娇和 Dimo 两只宠物,也支持自定义资源包:按文件夹结构放入精灵图和清单文件就能新增宠物,清单带版本号(v1/v2),未知字段向前兼容。设置本地保存、下次启动自动恢复;常驻不扰民——小尺寸透明窗口、预加载精灵图、低频轮询,隐藏或”出门”时暂停一切定时器和动画。
Engineering
技术亮点
约 4400 行源码,Rust 与 TypeScript 按职责而非技术分层。
三层职责边界
一条铁律贯穿:Rust 只管系统与文件(透明置顶窗口、托盘、设置读写、资源包扫描),所有视觉状态与动画行为都留在 TypeScript。
可测试的行为层
状态机是纯 reducer,调度器、精灵解析、边界反弹全是纯函数,需要触达窗口的一律依赖注入——132 个测试完全脱离真实 Tauri 窗口运行。
拖拽竞态控制器
拖动宠物要异步查询原生窗口坐标,而指针事件同步连续到达。用代际计数器 + pendingStart 缓冲 + 移动合并解决竞态,6px 阈值区分点击与拖拽。
防御式自愈
配置损坏时 Rust 与 TS 两层各自钳制修复;资源包清单逐文件规范化路径,拦截 ../ 遍历;非法包被隔离上报而非引爆应用。
132
自动化测试(TS + Rust)
~4400
行源码
6 态
事件驱动状态机
2 只
内置宠物 + 自定义资源包
不做喂食、不做升级、不做 AI 闲聊——克制本身就是一种产品判断。
下一个项目
PodEcho →