为什么我要做一个开发者工具箱?聊聊 Kairoa 的诞生

周末两天把 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 个工具:

  1. Hash 计算器 - 支持 MD5、SHA-1、SHA-256、SHA-384、SHA-512,可以计算文本或文件的哈希值
  2. 时间转换器 - 时间戳和日期互转,支持时区选择
  3. UUID/ULID 生成器 - 批量生成 UUID,支持包含/排除连字符
  4. JSON 格式化器 - 格式化和压缩 JSON,实时验证
  5. 编解码工具 - Base64、URL、ASCII 编码解码,图片 Base64 转换
  6. 文本统计 - 统计字符数、单词数、行数等
  7. Crontab 计算器 - 解析 crontab 表达式,显示未来执行时间
  8. 颜色转换器 - HEX、RGB、HSL 格式互转
  9. 进制转换器 - 二进制、八进制、十进制、十六进制互转
  10. RSA 密钥对生成器 - 生成 RSA 密钥对,支持 PEM 和 DER 格式
  11. REST API 客户端 - 发送 HTTP 请求,支持各种请求方法和 multipart 文件上传

最后

这个项目对我来说是个尝试,尝试新技术,也尝试用 AI 辅助开发。这一段时间深度使用 AI 辅助开发以来,越发发现有了 AI,以前想做但没能力的做的很多事情都不是什么事情了。虽然这个工具还有很多不足,但基本达到了我的预期:一个用起来舒服的开发者工具箱。

如果你也觉得市面上的工具不好用,不妨试试 Kairoa。如果遇到问题或者有建议,欢迎在 GitHub 提 issue。

也欢迎直接下载使用,目前已经支持 macOS、Linux 和 Windows。GitHub Releases 页面有预编译的二进制文件。

希望这个工具能帮到你,也希望能听到你的反馈。

相关推荐
遝靑20 小时前
Flutter 跨端开发进阶:可复用自定义组件封装与多端适配实战(移动端 + Web + 桌面端)
前端·flutter
cypking20 小时前
Web前端移动端开发常见问题及解决方案(完整版)
前端
老前端的功夫20 小时前
Vue 3 vs Vue 2 深度解析:从架构革新到开发体验全面升级
前端·vue.js·架构
栀秋66620 小时前
深入浅出链表操作:从Dummy节点到快慢指针的实战精要
前端·javascript·算法
serendipity_hky21 小时前
【go语言 | 第2篇】Go变量声明 + 常用数据类型的使用
开发语言·后端·golang
狗哥哥21 小时前
Vue 3 动态菜单渲染优化实战:从白屏到“零延迟”体验
前端·vue.js
青青很轻_21 小时前
Vue自定义拖拽指令架构解析:从零到一实现元素自由拖拽
前端·javascript·vue.js
疯狂的程序猴21 小时前
App Store上架完整流程与注意事项详解
后端
树下水月21 小时前
纯HTML 调用摄像头 获取拍照后的图片的base64
前端·javascript·html
蜗牛攻城狮21 小时前
Vue 中 `scoped` 样式的实现原理详解
前端·javascript·vue.js