2026 年 6 月中下旬开始,本站用 Rust+Tauri 开发了5个轻量桌面小工具:ClipWatcher剪贴板管家、90Notes便签、LanFileShare局域网共享、CleanX垃圾清理、MailCard礼品卡提取。这篇文章说明它们各自解决什么问题,以及技术选型为什么最终落在 Rust + Tauri 上,包括一个把厂商 200MB 的 Electron 客户端精简成 149KB 桥接进程的真实案例。
开机自启
目前本站开机自启的3个应用:剪贴板管家 ClipWatcher Pro、便签笔记 90Notes、LanFileShare 局域网文件共享,全是自动启动后静默运行,没弹窗,需要的时候分别按 Ctrl+Shift+V、Ctrl+Shift+Q、Ctrl+Shift+F 呼出或隐藏,在电脑桌面右下角系统托盘有图标,可简单判断程序是否在运行。
CleanX 和 MailCard 礼品卡提取在需要的时候,双击桌面图标(分别创建桌面快捷方式)即可启动,都很方便!
把这几个应用的图标都重做了一遍,看着还行,比之前好很多。

工具清单
| 名称 | 定位 | 核心数据 |
|---|---|---|
| ClipWatcher / ClipWatcher Pro | 剪贴板管家 | 500 条历史上限、8 类内容自动识别、UPX 后约 2.2MB |
| 90Notes / 90Notes Pro | 便签笔记 | 单机版 exe 约 2MB;Pro 版 SQLite+MySQL+MariaDB 三源自动降级 |
| LanFileShare | 局域网文件共享 | 单文件 0.9MB、实测 1.9GB 视频约 40 秒(约 50MB/s) |
| CleanX | 系统垃圾清理 | 1.5MB 五合一、80+ 缓存路径、MFT 直读索引 44 万条 / 2.6 秒 |
| MailCard | 亚马逊礼品卡提取 | QQ 邮箱 IMAP 批量提取 4 种礼品卡、CSV 跨运行去重 |
| WebPConverter | 图片格式转换 | 图片一键批量改大小、压缩、加水印,格式转换 |
图片格式转换工具是去年写的,这里不讲了,主要讲一下今年开发的这几个!
下面先讲技术选型,再逐个介绍。
技术选型:为什么是 Rust + Tauri
这批工具最终选择了 Rust + Tauri。这个决定不是一开始就有的,是排除法加调研排出来的。
为什么不用 Electron
这些工具的复杂程度属于中等偏下,远没到需要 Electron 那种重型框架的地步。Electron 的原理是:每个应用都自带一份完整的浏览器内核——Chromium,也就是 Chrome 浏览器内核的开源版本——外加一个 Node.js 运行时。界面看着是桌面程序,实际跑着一个完整的浏览器,所以体积大、内存占用高、启动慢,几个工具同时开着,内存小的电脑根本扛不住。小工具应该轻、快,所以 Electron 第一个被排除。
为什么不用 Python
Python 本站会写,这批工具里还真有一个 Python 前身——MailCard 最早是 2018 年写的脚本:邮箱和授权码直接硬编码在代码里,要用就得把邮箱和授权码发给本站,怎么说,感谢大家的长期信任和支持!
这次没选 Python,是因为调研时发现 Rust 有一个很实在的特点:编译通过了,基本上就不会报错。写完跑起来,心里踏实很多。
其他桌面方案也简单对比过
除了 Electron 和 Python,另外几条主流路线也过了一遍。判断标准就一条:适合“Windows 上小而轻的桌面小工具、单文件分发、能常驻后台”这种需求。
| 方案 | 一句话本质 | 体积 | 内存与速度 | 开发难度 | 典型代表 |
|---|---|---|---|---|---|
| Electron | 应用里自带完整浏览器内核(Chromium) | 100MB 起步,常见两三百 MB | 高内存、启动慢 | 低 | VS Code、Notion、Slack |
| Python + PyInstaller | 脚本加上自带解释器 | 常见几十 MB 到 100MB+ | 启动慢、常驻吃内存 | 最低 | 自用工具、快速原型 |
| .NET / WPF (C#) | 微软官方桌面方案 | 视打包方式,几 MB 到几十 MB | 中 | 中 | Windows 原生应用、企业软件 |
| Go + Wails | 和 Tauri 同思路,Go 后端 | 单文件,几 MB | 好 | 中 | 喜欢 Go 的开发者 |
| Qt (C++) | 老牌跨平台框架 | 几十 MB 起步 | 好 | 高 | 大型跨平台桌面软件 |
| Flutter Desktop | 自绘引擎,不带浏览器 | 10MB 往上 | 中 | 中 | 跨平台 UI 一致性要求高的应用 |
| Rust + Tauri(本项目) | 系统自带 WebView + Rust | 单文件 0.9~2.2MB | 低、快 | 高 | 轻量小工具、常驻程序 |
逐个说下取舍:
- Electron 功能最强、生态最全,大而全的应用选它没毛病,但对小工具来说并不合适,体积和内存两项直接出局。
- Python 写起来最快,但打包要带上解释器,体积和启动速度都不占优,常驻程序尤其不合适。
- .NET / WPF 其实是可行的选项,微软官方支持,开发难度中等;主要问题是分发要么依赖用户装 .NET 运行时,要么 self-contained 打包让体积涨上去,跨平台也基本不用想。最终没选它,不是它不好,是 Rust 的"编译通过基本不报错"对个人开发者更有吸引力。
- Go + Wails 思路和 Tauri 一样,但 Go 的 GUI 生态比 Rust 还新,组件更少。
- Qt 成熟可靠,但授权(商业版收费)和体积都偏重,对小工具来说复杂度不成比例。
- Flutter Desktop 自绘引擎不依赖系统 WebView,方向不错,但 Windows 桌面支持起步晚,包体积也不算小。
横评下来,对“轻量 Windows 小工具”这个需求,Rust + Tauri 在体积、内存、分发三项上最贴合。代价写在下面一节——开发门槛和编译速度。
Rust 的优点和缺点
优点。
第一,编译通过基本不报错。可以这样理解:Python 是“写完就跑”,跑到哪一行才告诉你哪里错了;Rust 是“出门过安检”,编译就是安检,过了基本就没事。个人项目没有测试团队,写完就发布,这个特点很有价值。
第二,快,省内存。Rust 编译出来的是原生程序,不套任何虚拟机。CleanX 扫 C 盘 44 万条文件建索引只要 2.6 秒,MailCard 抓几千封未读邮件从等待很久到几十秒完成,靠的就是这一点。
第三,打包省心。一个 exe 带走,不要求用户装任何运行库。对比:.NET 程序换台电脑要装 .NET,Java 要装虚拟机,Electron 每个应用自带一份完整的浏览器内核和运行时。Rust 编译完就一个文件。
第四,内存占用低。剪贴板管家、90Notes Pro(后台数据同步)这类需要长期挂机的常驻程序,长时间开着也没有压力。
缺点。
第一,门槛高。Rust 编译器管得严,内存安全相关规则经常让新手在编译阶段反复受挫,写起来比 Python 啰嗦。用 AI 来写的话,这些都不是问题。
第二,编译慢。改一小处代码,等待编译几十秒到几分钟很正常,“改代码、看效果”的循环比脚本语言慢。所以小工具最好想清楚再写,反复改动是有成本的。
第三,生态还年轻。第三方库没有 Python、JS 那么全,GUI 方面尤其明显——想用原生 GUI,组件要自己拼,中文渲染还得手动注册系统字体,网上文档也经常过期。这也是最终选择 Tauri 走 WebView 路线的部分原因。
第四,方向错了返工贵。脚本语言改架构相对容易,Rust 结构定下来之后再大改,牵一发动全身。动手前把结构想清楚,比写代码本身更重要。
对使用软件的人来说,Rust 的收益是直接的:exe 小、启动快、不吃内存、不用装运行库。代价是功能更新和修 bug 的节奏,会比脚本语言写的软件慢一些。
GUI 方案:Tauri,加一个 Iced 实验
Rust 的 GUI 框架,本站在动手前没有研究过,是写完才去看的。试了几个,效果都不太理想:想要好看点的界面,得自己手搓组件,先熟悉一套新框架再自己造轮子,性价比不高。
所以最终选择了 Tauri ,好处是打包后不依赖额外运行时,系统能正常运行,应用就能跑。前端用原生 HTML/CSS/JS,零 npm 依赖。代价是所有 Tauri 应用都依赖 Windows 的 WebView2(Win11 自带,Win10 一般随 Edge 自动装好),不想安装 WebView2、或者不用 Edge 的用户,就支持不到。
摆脱 WebView2 的尝试也在进行:目前用 Iced(纯 Rust 原生渲染,不碰浏览器内核)重写 CleanX 的核心功能做验证。第一版初步结论:可行,但有代价——中文文本要手动注册系统字体;标签页、进度条、输入框全部要自己实现。实验还在进行中,如果体积和体验都能接受,后续不排除转原生。

逐个介绍 5 个工具
1. ClipWatcher 剪贴板管家
第一个完成的就是它,也是等了很多年才动手的。起因是最近事情很多:看到一些问卷平台或其他资源,想着先研究一下,结果只是复制了链接,没有打开看,也没有粘贴保存,资源就这么错过了,后面基本再也碰不到。
有了剪贴板管家就不一样了:碰到资源先复制一下链接,等有空了按 Ctrl+Shift+V 呼出剪贴板管家,集中把当时想看的网站过一遍;有价值的写一段备注,再按 Ctrl+Shift+Q 存进 90Notes。
ClipWatcher 会自动识别剪贴板内容的类型——链接、邮箱、IP、电话、多行文本、普通文本,新内容一到就分类放好,500 条历史以内随时翻。支持搜索、收藏、编辑、导出/导入 JSON、双主题、系统托盘、开机自启、窗口位置记忆。
Pro 版多了几个功能:AGC 礼品卡识别分栏(自动识别亚马逊礼品卡格式并去重,保留金额)、模拟真人输入(把内容"打"进任何输入框)、Ctrl+1~9 快捷粘贴、自动清除一周前的内容(收藏和礼品卡保留)。
定位上,ClipWatcher 是一个“暂存器”:短内容、常用的,点收藏即可;中长篇、重要的内容,不适合放在这里,应该存到 90Notes。
2. 90Notes 便签笔记:单机版加密,Pro 版三源备份
90Notes 是便签笔记软件,分两个版本。
单机版:本站学员在用!单 exe 约 2MB,数据存本地 SQLite,标题、正文、文件夹名全部用 AES-256-GCM 逐字段加密,数据库文件被人整个拷走,没有密钥也只能看到乱码。支持 Markdown(15 种语言代码高亮)、纯文本、JSON 三种编辑模式,多级文件夹、全文搜索、回收站,三档护眼主题,500ms 自动保存,退出时自动备份数据库。配合 Ctrl+Shift+Q 全局热键和开机自启,随时呼出,写完最小化回托盘。
Pro 多端同步版:本站自用!三个数据源自动降级——本机 MySQL 开着走 MySQL,没开走电视盒子上的 MariaDB(走网页端 API),两个都不在就落到 SQLite 本地缓存,恢复后再自动同步,相当于多重备份,这样数据怎么可能丢失?
除了应用还有网页版便签,任意设备,用浏览器都能访问,可以对内容进行增删改查!
MariaDB 等服务部署在一台电视盒子/机顶盒上。这盒子以前用来挂机赚钱的,吃灰多年后重新刷了 Armbian Linux 系统,盒子配置很低,无风扇,功耗低,刷完机已稳定运行近两周。

最近又在闲鱼上淘了个盒子,配置高,4GB 内存,可以搞一些其他东西,具体搞什么还没想好,再加一个便签数据源?没必要啊!
3. LanFileShare:局域网传文件
单文件 0.9MB,内置一个裸写的 HTTP 服务,默认 8085 端口(被占用自动递增)。开启后,局域网里任何设备——手机、平板、另一台电脑、智能电视——浏览器打开面板上的地址就能传文件,不需要安装任何东西。
几个特点:
- 快:整文件直传,不过云端中转,实测 1.9GB 的视频约 40 秒传完(约 50MB/s)
- 不需要外网:断网照常工作,数据全程不出局域网,不经过任何第三方服务器
- 暂存区 + 发布:传上来的文件先落在只有主机可见的暂存区,确认后再"发布"出去(同盘改名,毫秒级完成),防止误传
- Origin 白名单:浏览器请求必须来自本机或本局域网地址,陌生网页的跨站请求直接 403
- 二维码:面板和网页都能出示地址二维码,手机扫码即连
- 批量上传(最多 3 个并发)、批量下载、中文文件名、开机自启、Ctrl+Shift+F 全局快捷键
4. CleanX:一个顶5个软件的小工具
本站自己用的,单文件 1.5MB,五个标签页:垃圾清理、文件搜索、大文件、系统维护、屏幕亮度。
垃圾清理:启动自动扫描 80+ 个已知缓存路径,12 个分类。扫描清单明显偏开发者——target、.gradle、.m2、npm-cache 这类动辄几个 G 的开发缓存,市面上通用的清理工具一般不管这些。
文件搜索:Everything 同款原理——管理员权限直接读 NTFS 主文件表(MFT),实测 C 盘 44 万条文件索引只要 2.6 秒;非管理员自动降级为全盘遍历;索引落盘缓存,二次启动即时可用。
系统维护:DISM 组件存储清理(非激进模式,保留卸载更新的能力)、旧驱动清理(按版本号比较,只删旧版)、还原点管理(列表勾选删除,默认不勾最新)。
屏幕亮度:笔记本外接的 AOC 显示器,官网应用是 Electron 开发的,200MB 起步,启动慢,功能繁多,而实际需要的只有亮度调节。走厂商私有协议,把桥接进程连同它依赖的运行文件(50 个文件共 10.5MB)从官网应用剥离出来,集成进 CleanX,卸载官方应用,亮度调节照常生效。
CleanX 出过一次事故:早期版本把系统驱动目录列进扫描清单,一次管理员模式的清理删掉了存储控制器驱动,系统无法启动,靠系统还原才恢复。事故之后,所有系统风险路径永久移除,windows/system 两类默认不勾选、“全选”也跳过、行上带 ⚠️ 标记,系统目录只走官方工具(DISM/pnputil/vssadmin)。原则是宁可清不到,不碰风险路径。
5. MailCard:从 Python 脚本到 Rust 多合一
这 5 个工具里唯一有前身的是 2018 年写的 Python 脚本,从 QQ 邮箱自动整理亚马逊礼品卡:邮箱授权码硬编码、一类卡一个包,结果就产生了很多包。
Rust 重写后实现了多合一:明文 AGC(礼品卡兑换码)、官网 AGC 链接、TCRL 糖果卡链接(Tango Card)、VRC 链接(Virtual Reward Center)。连接 QQ 邮箱 IMAP 读取未读邮件,MIME 递归解析,每批 200 封并发拉取(比逐封快 50~100 倍),按卡号/链接跨运行去重(同一张卡换格式出现也不重复收录,金额保留),编码链接自动解码,输出 UTF-8 BOM 的 CSV(金额、发件人、原始收件人、日期都在),Excel 打开不乱码。邮箱配置 AES-256-GCM 加密。
共享的激活体系
ClipWatcher、90Notes、MailCard 共用同一套激活体系:RSA + AES + HMAC 签名加密 + HWID 硬件指纹,一机一码,激活码和电脑一一对应;换机需要重新激活,数据用激活码派生密钥加密,换机重激活后数据完好。LanFileShare 和 CleanX 是本站内部自用工具,没加这套体系。
总结
这批工具的思路很简单:工具不在多,在于顺手,每解决一个真实的小麻烦,就多一分生产力。目前 5 个工具够用,不再开发新的,后续按需修 bug、加功能。
技术路线上:Rust + Tauri。Rust 用“编译通过基本不报错”换来了开发时的踏实感,Tauri 用系统自带 WebView 换来了打包后的轻量。Electron 那种“每个应用自带一个浏览器内核”的方案,对中小型工具来说并不合适。
另外一点:原生 GUI(Iced)的实验还在进行,如果体积和体验都能接受,这批工具后续可以摆脱对 WebView2 的依赖。
最后:AI时代,很多活都可以让 AI Agent 来干,对于业务流程是固定的,重复的,私密数据或者数据需要保存在本地的,最好写成脚本或者打包成应用,这样更方便。

发表评论