Show HN: DBDelve – RustとGPUIで作られたオープンソースDBクライアント
Show HN: DBDelve – Open-Source DB Client Made with Rust and GPUI (news.ycombinator.com)
要約
RustとGPUIで開発されたオープンソースのデータベースクライアント「DBDelve」が紹介されています。パフォーマンスと使いやすさを重視して設計されており、DBeaverのような既存のクライアントと比較して、起動時間、メモリ使用量、クエリ速度で大幅な優位性を示しています。開発者は、特に大規模データセットでのメモリオーバーヘッド削減に注力しました。
全文翻訳
皆さん、こんにちは。私は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%で必要とする機能のほとんどに加えて、いくつか良いタッチになると思った機能も備えています:読み取り専用、読み書き、フルアクセスモード、グラステーマ(もし好きなら、私は好きです)、すべてのキーバインディングがカスタマイズ可能なキーボード中心、接続のプロジェクトへの整理
私と他の数人の人々は1ヶ月以上これを日常的に使用しており、最も良いフィードバックは、ナビゲートしやすい非常にシンプルなUI、その年齢にしては非常に安定していること、そしてもちろんパフォーマンスについてです。人々がこれが成長する可能性を秘めていると言ってくれるので、私も配布に挑戦しています。
ZedチームのGPUIには本当に感謝しています。crates.ioで公式にクレートが更新されていないという点さえ乗り越えれば、作業は非常に楽です。コミュニティが解決策を見つけてくれています。深く掘り下げる必要がありますが。パフォーマンスは非常に優れており、そのHTMLライクな構造はWeb開発のバックグラウンドを持つ人にとって理解しやすく、エージェントもそれを書くのが非常に得意です。GPUIコンポーネントは、優れたコンポーネントライブラリを持つという多くの問題を解決します。GPUIプロジェクトをこれから始める人にとって、GPUI-kitは非常に理にかなっていると思います。GPUIとGPUI-componentをバンドルし、実験的ですが多くのメリットをもたらす可能性のあるリテインモードを追加する最適化がいくつか含まれています。したがって、すべてを考慮すると、それがデフォルトの方法であるべきだと思います。
私が実施した主要な最適化は、Packed Rowsを使用することでメモリオーバーヘッドを削減したことです。これにより、大規模データセット(アプリに読み込まれた4GBのテーブルで8.1GBから4.9GBに削減)でのメモリ使用量が40%削減されました。その他は、主にRustとGPUIにバンドルされていたか、それらが非常に容易にしてくれたものです。
制限事項:署名および公証されていません。Apple側からのID検証は悪夢でしたが、まもなく署名されるはずです。現時点では、より成熟したクライアントとの機能同等性は期待しないでください。現在の一般的な方向性は、Zedの方法で機能を追加していくことですが、コアワークフローが高品質で完了していることを確認した後です。
ぜひ試してみてください。DBeaverやTablePlusから接続をインポートできます。
https://github.com/ShayanAbbas1/dbdelve