我用 Rust + GPUI 写了一个 Redis 客户端——Zedis

1 月 4 日
 treexie

在这个人人都在喊“不要重复造轮子”的时代,我还是又造了一个轮子——Zedis

⚡️ Zedis 是什么?

简单来说,Zedis 是一个追求极致性能的 Redis GUI 客户端。

市面上的 Redis 客户端有很多,zedis 也不是为了成为更好的 GUI 客户端,作为一名热衷于“通过造轮子来学习”的开发者,尝试构建 zedis 只是为了我自己更好的学习 rust ,后续我会说一下学习各种技术的造轮子之路。

Zedis 的核心目标只有一个:

它基于 Rust 编写,UI 层使用了与 Zed Editor 同款的渲染引擎 GPUI。这意味着 Zedis 的每一个像素都是由 GPU 直接绘制的,带来了原生、60 FPS 丝般顺滑的体验。

核心特性一览


🦀 为什么要写 Zedis ?

我一直坚信“熟能生巧”。从前端、Node.js 、Flutter 、Go 一路走来,我习惯通过写各种杂七杂八的模块和工具来掌握一门语言。

Rust 大概是我觉得上手曲线最陡峭的语言了,也因此成了我最近几年造轮子的首选。以下的几个项目就是我这几年学习 rust 所造的轮子了(顺带打广告让大家关注关注):

🤖 关于 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 ,感谢关注!)

4916 次点击
所在节点    分享创造
43 条回复
kkhaike
1 月 4 日
Z 打头以为是 zig 写的
treexie
1 月 4 日
@kkhaike Gemini 推荐的名字,发布前我查了一下,的确有个 zig 写的 redis 模块叫 zedis 。😂
guotie
1 月 4 日
nice
GzhiYi
1 月 4 日
点赞,速度不错。不过功能还没完善好?我一时没找到 value 编辑以及 key 重命名之类的。可以向 medis 看齐一下功能
treexie
1 月 4 日
@GzhiYi value 编辑是可以的,key 重命名未支持,功能的确是不完善的,暂时只能说是能用😂。

Medis 的功能是很齐全,后续会慢慢的完善,也坦白说一句,medis 的性能我觉得更好🫠。
bli22ard
1 月 4 日
这启动速度确实牛逼。我这 windows 没显示图标,不知道是不是没弄。
treexie
1 月 4 日
@bli22ard 毛胚房阶段,很多细节都没处理。
GzhiYi
1 月 4 日
@treexie 是我窗口太小了没看到哈哈。不错的
GzhiYi
1 月 4 日
默认字体还是偏大了,效率工具其实像 medis 一样小一些可视的内容多一些感觉更好,而且我尝试修改字体大小,未有生效。macos 15.4.1 。
treexie
1 月 4 日
@GzhiYi 现在只能修改编辑器那部分的字体,后续优化为全局
QlanQ
1 月 4 日
终于有了呀,redis 那么常用,但是好用的 gui 真的木有
点亮了,学习下这个项目
tuimaochang
1 月 4 日
牛逼,star 了
GzhiYi
1 月 4 日
@QlanQ medis 和 tiny drm 都挺好用的
QlanQ
1 月 4 日
@GzhiYi #13 是的,就是 medis 2 收费,而且还很贵
tinydrm 的话,不是引战哦,go 的 gui 真的不好看
zengxs
1 月 4 日
CPU/内存 占用 都比 Medis 高很多(打开同一个数据库的同一个 key 情况下),不过也正常,Apple 平台上第三方框架还是很难超过 Swift 的优化程度
willygeek007
1 月 4 日
这启动速度,这安装包大小,爱了爱了。
MagicLi
1 月 4 日
反馈:支持数据库选择.
treexie
1 月 4 日
@MagicLi 后续会支持选择数据库
FrankAdler
1 月 4 日
支持一下
guzzhao
1 月 4 日
@QlanQ #14 呃.. tinyrdm UI 是 Naive UI

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1182874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX