跳到正文
原文
Hacker News· shayan_abbas·· 9 小时前精选AI 评分70

DBDelve开源数据库客户端

Show HN: DBDelve – Open-Source DB Client Made with Rust and GPUI

AI 摘要

开发者Shayan开发了一款名为DBDelve的开源数据库客户端,采用Rust和GPUI框架,注重性能和易用性,旨在解决传统数据库客户端如DBeaver内存占用大、卡顿等问题

正文 · AI 翻译

Hi HN,我是Shayan,几个月前我开始构建一个DB客户端DBDelve,专注于性能,并努力制作一个感觉良好的工具(在Zed、Ghostty和其他感觉愉悦使用的工具的精神下)。

在我的工作流程中,我一直寻找性能,特别是由于一些时候我有一台非常过时的机器,任何形式的冗余都非常明显,我记得使用DBeaver,它多次崩溃在我身上,我还必须使用postGIS,这使情况变得更糟。

我将我所有的基本开发工具迁移到使用那些注重性能的工具(Zed、Ghostty等),但唯一缺少的是DB客户端。每个人拥有的主要选择是DBeaver,它是一个内存消耗大户,在我看来对大多数任务来说都是过度设计。

其他选项如Datagrid、Beekeeper、TablePlus要么是基于Electron的,因此臃肿且内存消耗大,要么是付费和闭源的。

DBDelve 0.3.6与DBeaver 25.3.1在同一Postgres表上,5次运行的中位数(2026-10-11,M1 Pro,32 GB)。时间是从操作到渲染的行数。

                            DBDelve   DBeaver
  Launch                    1.1 s     5.2 s
  Idle memory               133 MB    606 MB
  1,000-row query           0.21 s    1.96 s
  1M rows, time             56 s      208 s
  1M rows, memory [1]       4.9 GB    17 GB

[1] 故意将整个1M行、100列的表加载到内存中,行限制关闭。这不是一个正常的用例;DBeaver的堆限制必须手动提高以进行基准测试。

滚动性能,加载了100列的100万行:https://youtu.be/V2MOhJYFqIE

它具有大多数开发者在90%的工作流程中需要的90%的功能,还有一些我认为会很好用的功能: 只读、读写和完全访问模式 玻璃主题(如果你喜欢,我也是) 以键盘为中心,每个快捷键都可以自定义 将连接组织成项目

我和其他一些人已经使用它超过一个月了,大多数积极的反馈都来自于它有一个非常简单的界面来导航,非常稳定,对于它的年龄来说,性能当然也很出色。我也在这里分享,因为那些人说它有潜力成长,所以我试着尝试分发它。

在这里要特别感谢Zed团队对GPUI,如果你只是通过他们没有在crates.io上正式更新crate,但社区已经找到了解决方案,你只需要深入挖掘。

它性能非常出色,并且它像HTML的结构,使得来自网页开发背景的人很容易理解,代理也非常擅长编写它。

GPUI组件还解决了我们使用良好的组件库的问题。

我认为对于现在开始GPUI项目的人来说,GPUI-kit很有意义,它捆绑了GPUI、GPUI-component,并添加了一些优化,添加了保留模式,这是实验性的,但可能会带来很多好处,所以综合考虑,它应该是默认的方式。

我做的重大优化只是通过使用打包行来降低内存开销,这在大数据集上减少了40%的内存使用(在4GB的应用中加载的4GB表上从8.1GB减少到4.9GB),其他一切都打包在Rust和GPUI中,或者它们只是让它变得非常简单。

限制: 它没有签名和公证,苹果方面的身份验证是一场噩梦,但它应该很快就会签名的。 暂时不要期望与更成熟的客户端功能相同,这个方向现在的一般是Zed添加功能的方式,但在确保核心工作流程以高质量完成之后。

请试试,你可以从dbeaver和tableplus导入你的连接。

https://github.com/ShayanAbbas1/dbdelve

来源:Hacker News · news.ycombinator.com

00