周末两天把 Kairoa 的第一个版本搞出来了,一个跨平台的桌面开发者工具箱。今天想聊聊为什么要做这个项目,以及开发过程中的一些思考。
为什么会想做这个工具?
说实话,起因很简单------找不到好用的工具。
平时开发中,经常需要用到各种小工具:计算文件哈希、转换时间戳、格式化 JSON、生成 UUID 等等。最开始用的是各种在线工具,但用起来总有各种不爽:
- 有些网站加载慢,打开个页面要等半天
 - 功能不全,想要的功能要么没有,要么藏在某个不起眼的角落
 - 广告满天飞,一不小心就点错
 - UI 设计很随意,用起来没有愉悦感
 
后来改用桌面工具,问题也不少:
- 性能差,尤其是处理大文件的时候,卡顿明显
 - 功能单一,每个工具只能做一件事,装一堆应用又占地方
 - 界面老旧,审美还停留在十年前
 - 有些工具免费版功能被阉割,付费又觉得不值
 
说到底,就是没有一款工具能让我用起来很爽。既然找不到,那就自己做一个吧。
技术选型:为什么选择 Tauri + SvelteKit?
一开始我也考虑过 Electron,但 Electron 的体积和内存占用一直是个问题。后来了解到 Tauri,用 Rust 做后端,打包出来的应用体积小,性能也不错。更重要的是,Tauri 2 现在已经比较成熟了,值得一试。
前端框架选择了 SvelteKit 5。SvelteKit 5 引入了新的 runes 系统($state、$derived、$effect),写起来比之前的版本更直观。而且 Svelte 的编译时优化让它生成的代码体积更小,很适合桌面应用。
UI 方面用了 Tailwind CSS,快速搭建界面很方便。图标用的是 Lucide,风格统一,而且开源免费。
后端用 Rust 写了一些关键功能,比如 HTTP 请求处理。这样可以在 Rust 端处理 multipart 文件上传,避免浏览器的 CORS 限制,而且性能更好。
如果没有 AI,这个项目可能做不出来
这一点必须要说。虽然我平时也会写代码,但 Rust 对我来说还是比较陌生的。之前虽然看过一些 Rust 的教程,但真要动手写,还是会遇到各种问题。
比如在 Rust 后端处理 multipart/form-data 请求,要处理文件上传、Base64 解码、MIME 类型判断等等。这些细节如果没有 AI 的帮助,光靠查文档和 Stack Overflow,可能要花很多时间。
还有前端的国际化实现,虽然概念不复杂,但要写得优雅、响应式,也需要一些技巧。AI 帮我快速理解了 Svelte 5 的响应式系统,写出了比较满意的实现。
当然,AI 也不是万能的。它生成的代码有时候会有 bug,需要我仔细检查。但总的来说,AI 大大提高了开发效率,让我能在有限的时间内完成这个项目。
做了哪些功能?
目前实现了 11 个工具:
- Hash 计算器 - 支持 MD5、SHA-1、SHA-256、SHA-384、SHA-512,可以计算文本或文件的哈希值
 - 时间转换器 - 时间戳和日期互转,支持时区选择
 - UUID/ULID 生成器 - 批量生成 UUID,支持包含/排除连字符
 - JSON 格式化器 - 格式化和压缩 JSON,实时验证
 - 编解码工具 - Base64、URL、ASCII 编码解码,图片 Base64 转换
 - 文本统计 - 统计字符数、单词数、行数等
 - Crontab 计算器 - 解析 crontab 表达式,显示未来执行时间
 - 颜色转换器 - HEX、RGB、HSL 格式互转
 - 进制转换器 - 二进制、八进制、十进制、十六进制互转
 - RSA 密钥对生成器 - 生成 RSA 密钥对,支持 PEM 和 DER 格式
 - REST API 客户端 - 发送 HTTP 请求,支持各种请求方法和 multipart 文件上传
 
最后
这个项目对我来说是个尝试,尝试新技术,也尝试用 AI 辅助开发。这一段时间深度使用 AI 辅助开发以来,越发发现有了 AI,以前想做但没能力的做的很多事情都不是什么事情了。虽然这个工具还有很多不足,但基本达到了我的预期:一个用起来舒服的开发者工具箱。
如果你也觉得市面上的工具不好用,不妨试试 Kairoa。如果遇到问题或者有建议,欢迎在 GitHub 提 issue。
- 项目地址:github.com/covoyage/ka...
 - 工具下载地址:github.com/covoyage/ka...
 
也欢迎直接下载使用,目前已经支持 macOS、Linux 和 Windows。GitHub Releases 页面有预编译的二进制文件。
希望这个工具能帮到你,也希望能听到你的反馈。