我用 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 条回复
osdodo
1 月 4 日
op 搞的不错,我用 Rust 和 Ratatui 也搞了一个 TUI 版的: https://github.com/osdodo/picordm ,占用资源比较低,不过功能应该比不上收费的,我主要是自己用
osdodo
1 月 4 日
@QlanQ 我也不喜欢 tinydrm 的 UI ,所以我自己搞了个更轻量的 TUI 版;)
osdodo
1 月 4 日
@guzzhao tiny rdm 用的和 tauri 一样的方案,用 web 技术写前端
huangliu
1 月 4 日
不错哦,上两个月才在群里讨论挺看好 gpui ,很适合尝试开发桌面客户端,这么快就有人动手了,加油啊~
micolore
1 月 4 日
支持一下。
WayneCmd
1 月 4 日
如果能一直走开源的路的话,我觉得就不太算造轮子,应该是在填补市场空白。macOS 上唯一一个好用的是 redis-pro ,然后已经两年没更新了(而且 app store 版还不是作者本人发布的)。我现在都在用官方的客户端了( redis insight )虽然不是特别好用 只是官方出品有质量保证。加油做吧,支持一下!
treexie
1 月 4 日
@shenlanAZ 对的,希望能做得更好,不再只是轮子。
dreamk
1 月 4 日
@shenlanAZ 我用的 redis 官方之前 qt 写的 RESP.app ,但下架了,在 app store 已购项目里还能找到下载
lepig
1 月 4 日
下载 试用一下。 楼主太牛了,毅力惊人
lepig
1 月 4 日
楼主学习一门新的语言,是不是先看一下基础语法。然后直接做一个自己感兴趣的小工具来入门的吗? 能否具体讲讲
treexie
1 月 4 日
@lepig 是的,基本都是以下的模式:
1 、找一本书看看基础语法
2 、了解该语言的热门模块、项目(一般会去阅读一下简单的模块的代码)
3 、找一下自己感兴趣的方向去写个小工具(一般什么工具都有人写了,所以这一步基本就是造轮子)
jdz
1 月 4 日
牛逼
ala2008
1 月 4 日
看了 op 的 github ,真能折腾啊,佩服👍
iorilu
1 月 4 日
可以, 对 gpui 开发 gui 也有兴趣

rust 确实潜力大, 虽然难入门, 但有 AI 协助, 还是能搞一些开发的, 关键三方高手很多都在发力
miniliuke
1 月 4 日
gpui 是不是比较耗 gpu 啊,毕竟不停绘画
treexie
1 月 4 日
@miniliuke 是会使用到 gpu ,不过也还好,毕竟看 redis 的数据也不是动画。
wdmx007
1 月 4 日
启动很快!另外:可以连接 Redis 集群吗??
wdmx007
1 月 4 日
@wdmx007 试了一下,随便输入一个 IP+端口就行了。
treexie
1 月 4 日
@wdmx007 是的,只要配置单个 ip 就可以,会自动判断是什么模式,如果 sentinel 接多个 master ,那就要自己指定一下 master name 了。
youyouzi
1 月 4 日
非常不错,我也看好 rust ,之前看论坛讨论说输入法提示,我也整了一个,挺好用。顺便接了大模型划词翻译功能,在公司内部分享了一下,反馈还行。
已经 star 了,返璞归真的简洁,好评!

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

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

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

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

© 2021 V2EX