V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
treexie
V2EX  ›  分享创造

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

  •  
  •   treexie · 1 天前 · 2974 次点击

    在这个人人都在喊“不要重复造轮子”的时代,我还是又造了一个轮子——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 可免填名称)或单机模式。

    • 💻 全平台支持:支持 macOSWindowsLinux,均可在 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 ,感谢关注!)

    41 条回复    2026-01-04 23:40:37 +08:00
    kkhaike
        1
    kkhaike  
       1 天前
    Z 打头以为是 zig 写的
    treexie
        2
    treexie  
    OP
       1 天前
    @kkhaike Gemini 推荐的名字,发布前我查了一下,的确有个 zig 写的 redis 模块叫 zedis 。😂
    guotie
        3
    guotie  
       1 天前
    nice
    GzhiYi
        4
    GzhiYi  
       1 天前
    点赞,速度不错。不过功能还没完善好?我一时没找到 value 编辑以及 key 重命名之类的。可以向 medis 看齐一下功能
    treexie
        5
    treexie  
    OP
       1 天前
    @GzhiYi value 编辑是可以的,key 重命名未支持,功能的确是不完善的,暂时只能说是能用😂。

    Medis 的功能是很齐全,后续会慢慢的完善,也坦白说一句,medis 的性能我觉得更好🫠。
    bli22ard
        6
    bli22ard  
       1 天前
    这启动速度确实牛逼。我这 windows 没显示图标,不知道是不是没弄。
    treexie
        7
    treexie  
    OP
       1 天前
    @bli22ard 毛胚房阶段,很多细节都没处理。
    GzhiYi
        8
    GzhiYi  
       1 天前
    @treexie 是我窗口太小了没看到哈哈。不错的
    GzhiYi
        9
    GzhiYi  
       1 天前
    默认字体还是偏大了,效率工具其实像 medis 一样小一些可视的内容多一些感觉更好,而且我尝试修改字体大小,未有生效。macos 15.4.1 。
    treexie
        10
    treexie  
    OP
       1 天前   ❤️ 1
    @GzhiYi 现在只能修改编辑器那部分的字体,后续优化为全局
    QlanQ
        11
    QlanQ  
       1 天前
    终于有了呀,redis 那么常用,但是好用的 gui 真的木有
    点亮了,学习下这个项目
    tuimaochang
        12
    tuimaochang  
       1 天前
    牛逼,star 了
    GzhiYi
        13
    GzhiYi  
       1 天前
    @QlanQ medis 和 tiny drm 都挺好用的
    QlanQ
        14
    QlanQ  
       1 天前
    @GzhiYi #13 是的,就是 medis 2 收费,而且还很贵
    tinydrm 的话,不是引战哦,go 的 gui 真的不好看
    zengxs
        15
    zengxs  
       1 天前
    CPU/内存 占用 都比 Medis 高很多(打开同一个数据库的同一个 key 情况下),不过也正常,Apple 平台上第三方框架还是很难超过 Swift 的优化程度
    willygeek007
        16
    willygeek007  
       1 天前
    这启动速度,这安装包大小,爱了爱了。
    MagicLi
        17
    MagicLi  
       1 天前
    反馈:支持数据库选择.
    treexie
        18
    treexie  
    OP
       1 天前
    @MagicLi 后续会支持选择数据库
    FrankAdler
        19
    FrankAdler  
       1 天前 via Android
    支持一下
    guzzhao
        20
    guzzhao  
       1 天前
    @QlanQ #14 呃.. tinyrdm UI 是 Naive UI
    osdodo
        21
    osdodo  
       1 天前
    op 搞的不错,我用 Rust 和 Ratatui 也搞了一个 TUI 版的: https://github.com/osdodo/picordm ,占用资源比较低,不过功能应该比不上收费的,我主要是自己用
    osdodo
        22
    osdodo  
       1 天前
    @QlanQ 我也不喜欢 tinydrm 的 UI ,所以我自己搞了个更轻量的 TUI 版;)
    osdodo
        23
    osdodo  
       1 天前
    @guzzhao tiny rdm 用的和 tauri 一样的方案,用 web 技术写前端
    huangliu
        24
    huangliu  
       1 天前
    不错哦,上两个月才在群里讨论挺看好 gpui ,很适合尝试开发桌面客户端,这么快就有人动手了,加油啊~
    micolore
        25
    micolore  
       1 天前
    支持一下。
    shenlanAZ
        26
    shenlanAZ  
       1 天前
    如果能一直走开源的路的话,我觉得就不太算造轮子,应该是在填补市场空白。macOS 上唯一一个好用的是 redis-pro ,然后已经两年没更新了(而且 app store 版还不是作者本人发布的)。我现在都在用官方的客户端了( redis insight )虽然不是特别好用 只是官方出品有质量保证。加油做吧,支持一下!
    treexie
        27
    treexie  
    OP
       1 天前
    @shenlanAZ 对的,希望能做得更好,不再只是轮子。
    dreamk
        28
    dreamk  
       1 天前
    @shenlanAZ 我用的 redis 官方之前 qt 写的 RESP.app ,但下架了,在 app store 已购项目里还能找到下载
    lepig
        29
    lepig  
       1 天前
    下载 试用一下。 楼主太牛了,毅力惊人
    lepig
        30
    lepig  
       1 天前
    楼主学习一门新的语言,是不是先看一下基础语法。然后直接做一个自己感兴趣的小工具来入门的吗? 能否具体讲讲
    treexie
        31
    treexie  
    OP
       1 天前   ❤️ 1
    @lepig 是的,基本都是以下的模式:
    1 、找一本书看看基础语法
    2 、了解该语言的热门模块、项目(一般会去阅读一下简单的模块的代码)
    3 、找一下自己感兴趣的方向去写个小工具(一般什么工具都有人写了,所以这一步基本就是造轮子)
    jdz
        32
    jdz  
       1 天前
    牛逼
    ala2008
        33
    ala2008  
       1 天前
    看了 op 的 github ,真能折腾啊,佩服👍
    iorilu
        34
    iorilu  
       1 天前
    可以, 对 gpui 开发 gui 也有兴趣

    rust 确实潜力大, 虽然难入门, 但有 AI 协助, 还是能搞一些开发的, 关键三方高手很多都在发力
    miniliuke
        35
    miniliuke  
       1 天前
    gpui 是不是比较耗 gpu 啊,毕竟不停绘画
    treexie
        36
    treexie  
    OP
       1 天前
    @miniliuke 是会使用到 gpu ,不过也还好,毕竟看 redis 的数据也不是动画。
    wdmx007
        37
    wdmx007  
       1 天前
    启动很快!另外:可以连接 Redis 集群吗??
    wdmx007
        38
    wdmx007  
       1 天前
    @wdmx007 试了一下,随便输入一个 IP+端口就行了。
    treexie
        39
    treexie  
    OP
       1 天前   ❤️ 1
    @wdmx007 是的,只要配置单个 ip 就可以,会自动判断是什么模式,如果 sentinel 接多个 master ,那就要自己指定一下 master name 了。
    youyouzi
        40
    youyouzi  
       1 天前
    非常不错,我也看好 rust ,之前看论坛讨论说输入法提示,我也整了一个,挺好用。顺便接了大模型划词翻译功能,在公司内部分享了一下,反馈还行。
    已经 star 了,返璞归真的简洁,好评!
    sworld233
        41
    sworld233  
       21 小时 58 分钟前
    gpui 好耶
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    ♥ Do have faith in what you're doing.