# aSqlDB **Repository Path**: chanble/aSqlDB ## Basic Information - **Project Name**: aSqlDB - **Description**: aSqlDB is a lightweight database management tool inspired by Adminer。轻量级数据库管理工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Rust Vue 3 MySQL PostgreSQL SQLite

aSqlDB

用 Rust 编写的统一 Web 多数据库管理工具
通过一个直观的 Web 界面管理 MySQL、PostgreSQL 和 SQLite 数据库。

功能特性快速开始架构API 概览开发指南


English

--- ## 概述 aSqlDB是一个开源数据库管理工具,提供**统一的 Web 界面**来管理 MySQL、PostgreSQL 和 SQLite 数据库。本软件设计灵感来自 [Adminer](https://www.adminer.org/),致力于打造轻量、直观的数据库管理体验,从头使用 Rust 构建,追求高性能和高可靠性。 后端全部使用 **Rust**(Axum + SQLx)编写,前端使用 **Vue 3** + **CodeMirror 6**,提供响应式、IDE 般的查询体验,支持语法高亮和自动补全。 ## 功能特性 ### 多数据库统一管理 一个界面管理所有主流数据库: | 数据库 | 支持状态 | 说明 | |--------|---------|------| | **MySQL** | 完全支持 | 连接池、方言感知 SQL 生成、完整内省 | | **PostgreSQL** | 完全支持 | 连接池、方言感知 SQL 生成、完整内省 | | **SQLite** | 完全支持 | 基于文件的连接、功能完整 | ### SQL 查询编辑器 - 执行单条或批量 SQL 语句(分号分隔) - **智能自动补全** — 通过 WebSocket 提供上下文感知的表、列、关键字和函数建议 - 基于 CodeMirror 6 的语法高亮 - 多语句执行,每条语句独立报告成功/失败 ### 数据库与模式管理 - **数据库**:创建、修改、删除、切换当前数据库 - **表**:创建、修改、删除、清空;查看 CREATE TABLE DDL;查看列和索引 - **数据**:浏览、过滤、排序、分页;插入、更新、删除行 - **索引**:查看、创建(INDEX/UNIQUE/FULLTEXT/SPATIAL/PRIMARY KEY)、删除 ### 数据导出 - 支持 **SQL**、**CSV**、**TSV**、**分号分隔 CSV** 格式导出表或整个数据库 ### 用户与权限管理 - 创建、修改、删除、重命名用户 - 授权和撤销权限,支持预定义角色配置(超级管理员、DBA、读写、只读、DDL) ### 服务器管理 - 查看和终止服务器进程 - 查看服务器变量和状态 - 支持表的 REPAIR、OPTIMIZE、ANALYZE、CHECK 维护操作 ### 桌面应用 - 提供 **Tauri v2** 桌面应用,原生体验 ## 快速开始 ### 前置要求 - Rust(2021 edition) - Node.js(用于前端构建) ### 从源码运行 #### 开发模式 ```bash # 克隆仓库 git clone https://github.com/anomalyco/aSqlDB.git cd aSqlDB # 首先启动后端服务器 cargo run -p asql-web # 然后在另一个终端启动前端开发服务器 cd asql-web/frontend npm install npm run dev ``` 服务器默认启动在 `http://0.0.0.0:5173`,在浏览器中打开即可开始使用。 #### 构建运行 ```bash # 克隆仓库 git clone https://github.com/anomalyco/aSqlDB.git cd aSqlDB # 构建发布版本(自动构建前端) cargo build --release -p asql-web # 运行 ./target/release/asql-web ``` ### 使用桌面应用 ```bash cargo run -p asql-tauri ``` ### 命令行选项 | 选项 | 环境变量 | 默认值 | 说明 | |------|---------|--------|------| | `-p`, `--port` | `ASQL_PORT` | `5580` | 监听端口 | | `-c`, `--config-dir` | `ASQL_CONFIG_DIR` | `~/.aSqlDB` | 配置目录 | ### 添加数据库连接 1. 打开 Web 界面 2. 点击"添加连接" 3. 填写连接信息: - **名称**:连接的自定义名称 - **URL**:数据库 URL(例如 `mysql://user:pass@host:3306/db`、`postgres://user:pass@host:5432/db` 或 SQLite 文件路径) - **系统**:MySQL / PostgreSQL / SQLite 4. 测试连接并保存 > **警告:** 账号和密码以明文保存在配置文件中(`~/.aSqlDB/connections.json`),请注意保护该文件的访问权限。 ## 架构 aSqlDB 由 7 个 Rust crate 组成的工作空间: ``` aSqlDB/ ├── asql-types/ # 共享类型定义和数据库元数据预设 ├── asql-dsl/ # 类型安全的 SQL DSL 构建器(支持 WASM,JavaScript 绑定为 @asql-dsl/wasm) ├── asql-sql/ # 基于 sqlparser 的 SQL 自动补全引擎 ├── asql-core/ # 核心数据库执行层(连接池、查询分发、结果统一) ├── asql-query/ # 统一查询协议 — 所有操作的单一类型化 API 契约 ├── asql-backend/ # 业务逻辑层(配置、连接持久化、BackendHandle) ├── asql-web/ # Web 应用 — Axum HTTP 服务器 + Vue 3 SPA 前端 └── asql-tauri/ # Tauri v2 桌面应用封装 ``` ### 数据流 ``` 浏览器 (Vue 3 SPA) │ ▼ HTTP / WebSocket asql-web (Axum REST API) │ ▼ asql-backend (业务逻辑) │ ▼ asql-query (统一查询协议) │ ├──▶ asql-dsl (SQL 构建器) │ ▼ asql-core (数据库执行) │ ├──▶ MySQL (sqlx) ├──▶ PostgreSQL (sqlx) └──▶ SQLite (sqlx) ``` ## API 概览 REST API 位于 `/api/` 下,涵盖以下分类: | 分类 | 接口 | |------|------| | **连接管理** | 增删改查、测试、Ping、执行查询 | | **数据库** | 创建、修改、删除、切换 | | **表** | 增删改查、元数据、列信息、索引 | | **数据** | ��询(过滤/排序/分页)、插入、更新、删除、计数 | | **导出** | 表或数据库导出(SQL/CSV/TSV) | | **用户** | 增删改查、授权、撤销权限 | | **服务器管理** | 进程、变量、状态、服务器版本 | | **自动补全** | 基于 WebSocket 的 SQL 智能补全 | ## 开发指南 ### 前置要求 - Rust 1.80+ - Node.js 18+ ### 开发模式运行 ```bash # 启动后端(自动重载) cargo watch -x 'run -p asql-web' # 另开终端,启动前端开发服务器 cd asql-web/frontend npm run dev ``` ### 运行测试 ```bash cargo test -p asql-web cargo test -p asql-core cargo test -p asql-query ``` ### WASM 构建(供 JavaScript 使用) ```bash cd asql-dsl wasm-pack build --target bundler # 发布为 @asql-dsl/wasm npm 包 ``` ## 技术栈 ### 后端 | 技术 | 用途 | |------|------| | **Rust** | 核心语言 | | **Axum 0.8** | HTTP 框架(支持 WebSocket) | | **SQLx 0.8** | 数据库驱动(MySQL、PostgreSQL、SQLite) | | **sqlparser 0.61** | SQL 解析(用于自动补全) | | **Tokio** | 异步运行时 | | **Clap 4** | CLI 参数解析 | ### 前端 | 技术 | 用途 | |------|------| | **Vue 3** | UI 框架 | | **TypeScript** | 前端语言 | | **CodeMirror 6** | SQL 编辑器(语法高亮) | | **Bulma** | CSS 框架 | | **vue-i18n** | 国际化 | | **Vite** | 构建工具 | ## 许可证 本项目使用 MIT 许可证。