为什么我要做一个开发者工具箱?聊聊 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 页面有预编译的二进制文件。

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

相关推荐
Cosolar6 小时前
国产麒麟系统 aarch64 架构 PostgreSQL 15 源码编译安装完整教程
java·后端
jerryinwuhan6 小时前
理论及算法_时间抽取论文
前端·算法·easyui
秋子aria6 小时前
模块的原理及使用
前端·javascript
菜市口的跳脚长颌6 小时前
一个 Vite 打包配置,引发的问题—— global: 'globalThis'
前端·vue.js·vite
胖虎2656 小时前
实现无缝滚动无滚动条的 Element UI 表格(附完整代码)
前端·vue.js
小左OvO6 小时前
基于百度地图JSAPI Three的城市公交客流可视化(一)——线路客流
前端
星链引擎6 小时前
企业级智能聊天机器人 核心实现与场景落地
前端
GalaxyPokemon6 小时前
PlayerFeedback 插件开发日志
java·服务器·前端
爱加班的猫6 小时前
深入理解防抖与节流
前端·javascript