我用 Rust + GPUI 写了一个 Redis 客户端——Zedis
在这个人人都在喊“不要重复造轮子”的时代,我还是又造了一个轮子——Zedis。
⚡️ Zedis 是什么?
简单来说,Zedis 是一个追求极致性能的 Redis GUI 客户端。
市面上的 Redis 客户端有很多,zedis 也不是为了成为更好的 GUI 客户端,作为一名热衷于“通过造轮子来学习”的开发者,尝试构建 zedis 只是为了我自己更好的学习 rust ,后续我会说一下学习各种技术的造轮子之路。
Zedis 的核心目标只有一个:快。
它基于 Rust 编写,UI 层使用了与 Zed Editor 同款的渲染引擎 GPUI。这意味着 Zedis 的每一个像素都是由 GPU 直接绘制的,带来了原生、60 FPS 丝般顺滑的体验。
核心特性一览
🚀 极速渲染:告别 HTML/CSS 的重绘负担,即使在低配机器上也能秒开。
♾️ 虚拟列表:实测轻松处理 10 万+ 级别的 Key 列表(我的手提百万级别也很流畅),配合
SCAN迭代,滚动浏览毫无卡顿。🧠 数据自动检测:
如果是 GZIP/ZSTD 压缩的数据,它会自动解压显示。
如果是 JSON/MsgPack,它会自动格式化并高亮。
如果是图片二进制流,直接显示预览图。
🛠️ 开箱即用**:自动适配 Cluster 、Sentinel (单 Master 可免填名称)或单机模式。
💻 全平台支持:支持 macOS 、Windows 和 Linux,均可在 GitHub Release 下载。
🦀 为什么要写 Zedis ?
我一直坚信“熟能生巧”。从前端、Node.js 、Flutter 、Go 一路走来,我习惯通过写各种杂七杂八的模块和工具来掌握一门语言。
Rust 大概是我觉得上手曲线最陡峭的语言了,也因此成了我最近几年造轮子的首选。以下的几个项目就是我这几年学习 rust 所造的轮子了(顺带打广告让大家关注关注):
cyberapi 基于 tauri 的类似 postman 的 api 工具(我真正开始学会 rust 的第一个项目)
diving-rs 参考 dive 实现的 docker 镜像查看工具
charts-rs rust 实现的图表模块,可以输出 svg 或者各种图片形式的图表
pingap 基于 pingora 的 http 反向代理(我真正一行行代码手写的 rust 项目,后续相关注释通过 gemini 生成)
zedis 基于 zed 的 gpui 实现的 redis GUI 客户端(绝大部分的逻辑自己实现好之后,让 gemini 分析语法调整)
🤖 关于 Zedis 与 AI 的协作
Zedis 的诞生其实是个巧合。当时看到了 gpui-component,单纯想试试用 GPUI 构建桌面程序的感觉。
与之前的项目不同,Zedis 是一个全面使用 AI 辅助的产品。这里指的不是简单的 Vibe Coding ,而是将 AI 作为“结对编程”的导师。
在对 GPUI 框架完全陌生的情况下,我负责核心逻辑的实现,而让 Gemini 充当了“文档检索员”和“代码审查员”的角色——帮我查阅分散的文档,分析模块语法,整理代码结构,并提供优化建议。在一个月的工作之余能开发出这个基本可用的版本,AI 功不可没。我并不抗拒 AI ,但我更愿意把它定义为一个“更先进的工具”,而非简单的“生产力”。
📝 结语
Zedis 算是给我 2025 年的 Rust 之旅画上了一个句号。
回顾这一年,虽然我绝大部分时间了 Pingap 这个面向基础设施的项目上,但 Zedis 代表了我对 Rust 在桌面端应用的一次全新尝试。
说实话,在繁重的工作之余死磕 Rust 确实是一场“苦修”。即便折腾了这么久,我依然觉得自己在 Rust 的世界里才刚刚入门。这是一门门槛过高的语言,真心不建议大家实际项目中为了用而用,除非你真的需要它带来的性能或安全红利。
无论你是想体验一下原生 GPUI 的速度,还是单纯对我的造轮子之路感兴趣,都欢迎来 GitHub 逛逛。
🌟 GitHub: https://github.com/vicanso/zedis (如果有空,欢迎点个 Star ,感谢关注!)
Z 打头以为是 zig 写的