mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-29 00:09:52 +00:00
DaMeng now uses JDBC agent instead of ODBC. Remove odbc-api crate, ODBC_ENV static, unixodbc system dependency from CI, and ODBC library bundling from macOS release builds. macOS no longer needs any brew dependencies for development.
240 lines
13 KiB
Markdown
240 lines
13 KiB
Markdown
<div align="center">
|
|
<img src="docs/logo.png" width="80" />
|
|
<h1>DBX</h1>
|
|
<p>25+ databases in 15 MB. Desktop & Docker self-hosting, with built-in AI assistant.</p>
|
|
<p>
|
|
<a href="https://github.com/t8y2/dbx/releases"><img src="https://img.shields.io/github/downloads/t8y2/dbx/total?style=for-the-badge&color=blue" /></a>
|
|
<a href="https://github.com/t8y2/dbx/graphs/contributors"><img src="https://img.shields.io/github/contributors/t8y2/dbx?style=for-the-badge" /></a>
|
|
<a href="https://discord.gg/W7NyVDRt6a"><img src="https://dcbadge.limes.pink/api/server/W7NyVDRt6a" alt="Join Discord" /></a>
|
|
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=&group_code=1087880322"><img src="https://img.shields.io/badge/QQ_群-1087880322-EB1923?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iODYiIHdpZHRoPSI4NiIgdmlld0JveD0iMCAwIDEyMCAxNDUiPjxwYXRoIGZpbGw9IiNmYWFiMDciIGQ9Ik02MC41MDMgMTQyLjIzN2MtMTIuNTMzIDAtMjQuMDM4LTQuMTk1LTMxLjQ0NS0xMC40Ni0zLjc2MiAxLjEyNC04LjU3NCAyLjkzMi0xMS42MSA1LjE3NS0yLjYgMS45MTgtMi4yNzUgMy44NzQtMS44MDcgNC42NjMgMi4wNTYgMy40NyAzNS4yNzMgMi4yMTYgNDQuODYyIDEuMTM2em0wIDBjMTIuNTM1IDAgMjQuMDM5LTQuMTk1IDMxLjQ0Ny0xMC40NiAzLjc2IDEuMTI0IDguNTczIDIuOTMyIDExLjYxIDUuMTc1IDIuNTk4IDEuOTE4IDIuMjc0IDMuODc0IDEuODA1IDQuNjYzLTIuMDU2IDMuNDctMzUuMjcyIDIuMjE2LTQ0Ljg2MiAxLjEzNnptMCAwIi8+PHBhdGggZD0iTTYwLjU3NiA2Ny4xMTljMjAuNjk4LS4xNCAzNy4yODYtNC4xNDcgNDIuOTA3LTUuNjgzIDEuMzQtLjM2NyAyLjA1Ni0xLjAyNCAyLjA1Ni0xLjAyNC4wMDUtLjE4OS4wODUtMy4zNy4wODUtNS4wMUMxMDUuNjI0IDI3Ljc2OCA5Mi41OC4wMDEgNjAuNSAwIDI4LjQyLjAwMSAxNS4zNzUgMjcuNzY5IDE1LjM3NSA1NS40MDFjMCAxLjY0Mi4wOCA0LjgyMi4wODYgNS4wMSAwIDAgLjU4My42MTUgMS42NS45MTMgNS4xOSAxLjQ0NCAyMi4wOSA1LjY1IDQzLjMxMiA1Ljc5NXptNTYuMjQ1IDIzLjAyYy0xLjI4My00LjEyOS0zLjAzNC04Ljk0NC00LjgwOC0xMy41NjggMCAwLTEuMDItLjEyNi0xLjUzNy4wMjMtMTUuOTEzIDQuNjIzLTM1LjIwMiA3LjU3LTQ5LjkgNy4zOTJoLS4xNTNjLTE0LjYxNi4xNzUtMzMuNzc0LTIuNzM3LTQ5LjYzNC03LjMxNS0uNjA2LS4xNzUtMS44MDItLjEtMS44MDItLjEtMS43NzQgNC42MjQtMy41MjUgOS40NC00LjgwOCAxMy41NjgtNi4xMTkgMTkuNjktNC4xMzYgMjcuODM4LTIuNjI3IDI4LjAyIDMuMjM5LjM5MiAxMi42MDYtMTQuODIxIDEyLjYwNi0xNC44MjEgMCAxNS40NTkgMTMuOTU3IDM5LjE5NSA0NS45MTggMzkuNDEzaC44NDhjMzEuOTYtLjIxOCA0NS45MTctMjMuOTU0IDQ1LjkxNy0zOS40MTMgMCAwIDkuMzY4IDE1LjIxMyAxMi42MDcgMTQuODIyIDEuNTA4LS4xODMgMy40OTEtOC4zMzItMi42MjctMjguMDIxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQ5LjA4NSA0MC44MjRjLTQuMzUyLjE5Ny04LjA3LTQuNzYtOC4zMDQtMTEuMDYzLS4yMzYtNi4zMDUgMy4wOTgtMTEuNTc2IDcuNDUtMTEuNzczIDQuMzQ3LS4xOTUgOC4wNjQgNC43NiA4LjMgMTEuMDY1LjIzOCA2LjMwNi0zLjA5NyAxMS41NzctNy40NDYgMTEuNzcxbTMxLjEzMy0xMS4wNjNjLS4yMzMgNi4zMDItMy45NTEgMTEuMjYtOC4zMDMgMTEuMDYzLTQuMzUtLjE5NS03LjY4NC01LjQ2NS03LjQ0Ni0xMS43Ny4yMzYtNi4zMDUgMy45NTItMTEuMjYgOC4zLTExLjA2NiA0LjM1Mi4xOTcgNy42ODYgNS40NjggNy40NDkgMTEuNzczIi8+PHBhdGggZmlsbD0iI2ZhYWIwNyIgZD0iTTg3Ljk1MiA0OS43MjVDODYuNzkgNDcuMTUgNzUuMDc3IDQ0LjI4IDYwLjU3OCA0NC4yOGgtLjE1NmMtMTQuNSAwLTI2LjIxMiAyLjg3LTI3LjM3NSA1LjQ0NmEuODYzLjg2MyAwIDAwLS4wODUuMzY3Ljg4Ljg4IDAgMDAuMTYuNDk2Yy45OCAxLjQyNyAxMy45ODUgOC40ODcgMjcuMyA4LjQ4N2guMTU2YzEzLjMxNCAwIDI2LjMxOS03LjA1OCAyNy4yOTktOC40ODdhLjg3My44NzMgMCAwMC4xNi0uNDk4Ljg1Ni44NTYgMCAwMC0uMDg1LS4zNjUiLz48cGF0aCBkPSJNNTQuNDM0IDI5Ljg1NGMuMTk5IDIuNDktMS4xNjcgNC43MDItMy4wNDYgNC45NDMtMS44ODMuMjQyLTMuNTY4LTEuNTgtMy43NjgtNC4wNy0uMTk3LTIuNDkyIDEuMTY3LTQuNzA0IDMuMDQzLTQuOTQ0IDEuODg2LS4yNDQgMy41NzQgMS41OCAzLjc3MSA0LjA3bTExLjk1Ni44MzNjLjM4NS0uNjg5IDMuMDA0LTQuMzEyIDguNDI3LTIuOTkzIDEuNDI1LjM0NyAyLjA4NC44NTcgMi4yMjMgMS4wNTcuMjA1LjI5Ni4yNjIuNzE4LjA1MyAxLjI4Ni0uNDEyIDEuMTI2LTEuMjYzIDEuMDk1LTEuNzM0Ljg3NS0uMzA1LS4xNDItNC4wODItMi42Ni03LjU2MiAxLjA5Ny0uMjQuMjU3LS42NjguMzQ2LTEuMDczLjA0LS40MDctLjMwOC0uNTc0LS45My0uMzM0LTEuMzYyIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTYwLjU3NiA4My4wOGgtLjE1M2MtOS45OTYuMTItMjIuMTE2LTEuMjA0LTMzLjg1NC0zLjUxOC0xLjAwNCA1LjgxOC0xLjYxIDEzLjEzMi0xLjA5IDIxLjg1MyAxLjMxNiAyMi4wNDMgMTQuNDA3IDM1LjkgMzQuNjE0IDM2LjFoLjgyYzIwLjIwOC0uMiAzMy4yOTgtMTQuMDU3IDM0LjYxNi0zNi4xLjUyLTguNzIzLS4wODctMTYuMDM1LTEuMDkyLTIxLjg1NC0xMS43MzkgMi4zMTUtMjMuODYyIDMuNjQtMzMuODYgMy41MTgiLz48cGF0aCBmaWxsPSIjZWIxOTIzIiBkPSJNMzIuMTAyIDgxLjIzNXYyMS42OTNzOS45MzcgMi4wMDQgMTkuODkzLjYxNlY4My41MzVjLTYuMzA3LS4zNTctMTMuMTA5LTEuMTUyLTE5Ljg5My0yLjMiLz48cGF0aCBmaWxsPSIjZWIxOTIzIiBkPSJNMTA1LjUzOSA2MC40MTJzLTE5LjMzIDYuMTAyLTQ0Ljk2MyA2LjI3NWgtLjE1M2MtMjUuNTkxLS4xNzItNDQuODk2LTYuMjU1LTQ0Ljk2Mi02LjI3NUw4Ljk4NyA3Ni41N2MxNi4xOTMgNC44ODIgMzYuMjYxIDguMDI4IDUxLjQzNiA3Ljg0NWguMTUzYzE1LjE3NS4xODMgMzUuMjQyLTIuOTYzIDUxLjQzNy03Ljg0NXptMCAwIi8+PC9zdmc+" alt="Join QQ Group" /></a>
|
|
</p>
|
|
<p>
|
|
<img src="https://img.shields.io/badge/MySQL-4479A1?logo=mysql&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/PostgreSQL-4169E1?logo=postgresql&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/SQLite-003B57?logo=sqlite&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/Redis-DC382D?logo=redis&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/MongoDB-47A248?logo=mongodb&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/DuckDB-FFF000?logo=duckdb&logoColor=black" />
|
|
<img src="https://img.shields.io/badge/ClickHouse-FFCC01?logo=clickhouse&logoColor=black" />
|
|
<img src="https://img.shields.io/badge/SQL%20Server-CC2927?logo=microsoftsqlserver&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/Oracle-F80000?logo=oracle&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/Elasticsearch-005571?logo=elasticsearch&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/MariaDB-003545?logo=mariadb&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/TiDB-DC150B?logo=tidb&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/Doris-0052CC?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/StarRocks-5C2D91?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/Redshift-8C4FFF?logo=amazonredshift&logoColor=white" />
|
|
<img src="https://img.shields.io/badge/OceanBase-006AFF?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/openGauss-2B7BD9?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/GaussDB-E60012?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/KingBase-003B8E?logoColor=white" />
|
|
<img src="https://img.shields.io/badge/and%20more...-555555?logoColor=white" />
|
|
</p>
|
|
<p>
|
|
English | <a href="README.zh-CN.md">前往中文版本</a>
|
|
</p>
|
|
|
|
<p>
|
|
<a href="docs/screenshot-light.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-light.png" width="395" /></a>
|
|
<a href="docs/screenshot-dark.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-dark.png" width="395" /></a>
|
|
</p>
|
|
<p>
|
|
<a href="docs/screenshot-er.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-er.png" width="395" /></a>
|
|
<a href="docs/screenshot-grid.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-grid.png" width="395" /></a>
|
|
</p>
|
|
</div>
|
|
|
|
## Features
|
|
|
|
### 17+ Databases, One Tool
|
|
|
|
MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server, Oracle, Elasticsearch, MariaDB, TiDB, OceanBase, openGauss, GaussDB, KingBase, Vastbase, GoldenDB — connect to all of them from a single ~15 MB app. No bundled Chromium.
|
|
|
|
### Query Editor
|
|
|
|
CodeMirror 6 with SQL syntax highlighting, smart autocomplete (tables & columns), `Cmd+Enter` execution, selected SQL execution, SQL formatting, and 9 editor themes. Persistent query history with search and restore.
|
|
|
|
### AI SQL Assistant
|
|
|
|
Describe what you want in plain language — get SQL back. Also explains, optimizes, and fixes errors. Works with Claude, OpenAI, or any OpenAI-compatible endpoint.
|
|
|
|
### Data Grid
|
|
|
|
Virtual-scrolled table that handles millions of rows. Inline editing, sorting, full-text search, pagination, column resize, row numbers, zebra stripes. Export to CSV, JSON, Markdown.
|
|
|
|
### Schema Tools
|
|
|
|
- **Schema browser** — databases, schemas, tables, columns, indexes, foreign keys, triggers, with sidebar search & pin
|
|
- **ER diagram** — visualize table relationships
|
|
- **Schema diff** — compare structures across connections
|
|
- **Explain plan** — visual query execution plan
|
|
- **Field lineage** — column-level lineage analysis
|
|
|
|
### Data Operations
|
|
|
|
- **Table import** — CSV, Excel
|
|
- **Data transfer** — migrate between databases
|
|
- **Database export** — full database dump
|
|
- **SQL file execution** — run `.sql` files directly
|
|
- **File preview** — drag & drop Parquet, CSV, JSON to preview instantly (powered by DuckDB)
|
|
|
|
### Specialized Browsers
|
|
|
|
- **Redis** — key pattern search, all data types (String, Hash, List, Set, ZSet, Stream)
|
|
- **MongoDB** — document CRUD with pagination, Atlas & replica set URL connection
|
|
|
|
### Safety & Connectivity
|
|
|
|
SSH tunnel (key & password) · auto-reconnect on connection loss · confirmation dialogs for destructive operations · encrypted config export/import · color-coded connections
|
|
|
|
### Polished UI
|
|
|
|
Dark mode with native title bar sync · 9 editor themes · English & 简体中文 · built-in auto-update
|
|
|
|
## AI Agent Integration (MCP)
|
|
|
|
DBX provides an [MCP server](mcp/) that lets AI coding agents query your databases using connections already configured in DBX.
|
|
|
|
```bash
|
|
npx @dbx-app/mcp-server
|
|
```
|
|
|
|
Add to your `.mcp.json`:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"dbx": { "command": "npx", "args": ["-y", "@dbx-app/mcp-server"] }
|
|
}
|
|
}
|
|
```
|
|
|
|
Works with Claude Code, Cursor, Windsurf, and any MCP-compatible agent. Supports listing connections, browsing tables, executing SQL, and opening tables directly in DBX's UI.
|
|
|
|
See the [MCP server README](mcp/README.md) for details.
|
|
|
|
## Install
|
|
|
|
Download the latest release from the [Releases](https://github.com/t8y2/dbx/releases/latest) page.
|
|
|
|
**Homebrew (macOS):**
|
|
|
|
```bash
|
|
brew install --cask t8y2/tap/dbx
|
|
```
|
|
|
|
**Scoop (Windows):**
|
|
|
|
```bash
|
|
scoop bucket add dbx https://github.com/t8y2/scoop-bucket
|
|
scoop install dbx
|
|
```
|
|
|
|
## Self-Hosted (Docker)
|
|
|
|
DBX provides a web version that can be deployed via Docker.
|
|
|
|
```bash
|
|
docker run -d --name dbx -p 4224:4224 -v dbx-data:/app/data t8y2/dbx
|
|
```
|
|
|
|
Or with Docker Compose:
|
|
|
|
```yaml
|
|
services:
|
|
dbx:
|
|
image: t8y2/dbx
|
|
ports:
|
|
- "4224:4224"
|
|
volumes:
|
|
- dbx-data:/app/data
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
dbx-data:
|
|
```
|
|
|
|
Open `http://localhost:4224` in your browser. Multi-arch images (amd64 / arm64) are available.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- [Node.js](https://nodejs.org/) >= 18
|
|
- [pnpm](https://pnpm.io/)
|
|
- [Rust](https://www.rust-lang.org/tools/install) >= 1.77
|
|
|
|
#### System Dependencies
|
|
|
|
**macOS:**
|
|
|
|
No additional dependencies required.
|
|
|
|
**Linux (Ubuntu/Debian):**
|
|
|
|
```bash
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev
|
|
```
|
|
|
|
**Windows:**
|
|
|
|
No additional dependencies required.
|
|
|
|
### Development
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev:tauri
|
|
```
|
|
|
|
Web version:
|
|
|
|
```bash
|
|
pnpm dev:web # frontend
|
|
pnpm dev:backend # backend
|
|
```
|
|
|
|
### Build
|
|
|
|
```bash
|
|
pnpm tauri build
|
|
```
|
|
|
|
The installer will be in `src-tauri/target/release/bundle/`.
|
|
|
|
## Tech Stack
|
|
|
|
| Layer | Technology |
|
|
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| Framework | [Tauri 2](https://tauri.app/) |
|
|
| Frontend | [Vue 3](https://vuejs.org/) + TypeScript |
|
|
| UI | [shadcn-vue](https://www.shadcn-vue.com/) + Tailwind CSS |
|
|
| Editor | [CodeMirror 6](https://codemirror.net/) |
|
|
| Backend | Rust + [sqlx](https://github.com/launchbadge/sqlx) / [tiberius](https://github.com/prisma/tiberius) / [redis-rs](https://github.com/redis-rs/redis-rs) / [mongodb](https://github.com/mongodb/mongo-rust-driver) |
|
|
|
|
## Community
|
|
|
|
[](https://discord.gg/W7NyVDRt6a)
|
|
[](https://qm.qq.com/q/1087880322)
|
|
[](https://linux.do)
|
|
|
|
## Contributors
|
|
|
|
<a href="https://github.com/t8y2/dbx/graphs/contributors">
|
|
<img src="https://contrib.rocks/image?repo=t8y2/dbx" />
|
|
</a>
|
|
|
|
## Star History
|
|
|
|
<a href="https://www.star-history.com/?repos=t8y2%2Fdbx&type=date&legend=top-left">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&theme=dark&legend=top-left" />
|
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&legend=top-left" />
|
|
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&legend=top-left" />
|
|
</picture>
|
|
</a>
|
|
|
|
## License
|
|
|
|
[AGPL-3.0](LICENSE)
|