# ddv-rust **Repository Path**: datac/ddv-rust ## Basic Information - **Project Name**: ddv-rust - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DDV-RUST 数据库 Schema 对比与版本迁移工具 - Rust 重写版 ## 项目简介 DDV (Database Diff & Version) 是一个数据库 Schema 版本对比和迁移工具,支持: - 7+ 数据库方言 (MySQL/TiDB, Oracle/DM, PostgreSQL/OpenGauss/KingBaseES) - Schema 元数据采集 (表/列/索引/约束/主键) - 数据快照 (DICT/CONFIG/PARAM 表) - Schema + 数据差异对比 - 增量 SQL 生成 (Migrate/Rollback/Backup) - 表标签自动分类 ## 技术栈 | 组件 | 技术 | 优势 | |------|------|------| | 后端核心 | Rust + Axum | 零 GC、原生性能、<10MB 二进制 | | MySQL/PG 驱动 | sqlx (纯 Rust) | 异步、无 JVM 依赖 | | Oracle/DM 驱动 | JDBC Bridge (Java 子进程) | 保留 JDBC 生态 | | 本地存储 | SQLite (rusqlite) | 嵌入式、零配置 | | 桌面 UI | egui | 即时模式、跨平台、~5MB | | CLI | clap | Rust 标准 CLI 框架 | ## 项目结构 ``` ddv-rust/ ├── crates/ │ ├── ddv-core/ # 核心库 (模型/方言/Diff/SQL生成/分类器) │ ├── ddv-store/ # SQLite 存储层 │ ├── ddv-collector-native/ # Rust 原生数据库驱动 (MySQL/PG) │ ├── ddv-jdbc-client/ # JDBC Bridge HTTP 客户端 │ ├── ddv-server/ # HTTP API (Axum) │ ├── ddv-app/ # egui 桌面应用 │ └── ddv-cli/ # 命令行工具 ├── jdbc-bridge/ # Java JDBC Bridge 子进程 ├── config/ # 配置文件 └── sql-templates/ # SQL 模板 ``` ## 快速开始 ```bash # 构建 cargo build --release # 运行桌面应用 cargo run --bin ddv-app --release # 运行 CLI cargo run --bin ddv -- serve --port 8765 cargo run --bin ddv -- snap my_connection cargo run --bin ddv -- diff ``` ## 与 Kotlin 版对比 | 维度 | Kotlin+Electron | Rust+egui | |------|-----------------|-----------| | 安装包体积 | ~132MB | ~5-10MB | | 启动时间 | 3-5s | <200ms | | 内存占用 | ~300-500MB | ~30-50MB | ## License MulanPSL-2.0