sqltool 0.4.1

功能强大的数据库迁移、同步、运维工具,支持自动分库分表、慢查询检测、数据对比、备份恢复,提供多语言SDK
Documentation
# =============================================================================
# SQLTool - 智能数据库迁移与运维工具
# =============================================================================
# 一款功能强大的数据库迁移、同步、运维工具,支持自动分库分表、慢查询检测、
# 数据对比、备份恢复等功能,提供 Python/Node.js/Go/PHP 等多语言 SDK
# =============================================================================

[package]
# 包名称 - 用于发布到 crates.io
name = "sqltool"
# 版本号 - 遵循语义化版本 (Semantic Versioning)
version = "0.4.1"
# Rust edition 版本
edition = "2021"
# 作者列表
authors = ["SQLTool Team <sqltool@example.com>"]
# 许可证 - MIT 开源许可证
license = "MIT"
# 包描述 - 简洁描述包的功能
description = "功能强大的数据库迁移、同步、运维工具,支持自动分库分表、慢查询检测、数据对比、备份恢复,提供多语言SDK"
# 项目主页
homepage = "https://github.com/yourusername/sqltool"
# 代码仓库
repository = "https://github.com/yourusername/sqltool"
# 文档地址
documentation = "https://docs.rs/sqltool"
# README 文件
readme = "README.md"
# 关键词 - 用于 crates.io 搜索(最多5个)
keywords = ["database", "migration", "sql", "sharding", "backup"]
# 分类 - 用于 crates.io 分类
categories = ["database", "development-tools"]
# 最低 Rust 版本要求
rust-version = "1.94"
exclude = [".trae/"]

# 库配置
[lib]
# 库类型:
#   - lib: Rust 库文件 (默认)
#   - staticlib: 静态链接库 (用于 FFI)
#   - cdylib: 动态链接库 (用于跨语言调用)
crate-type = ["lib", "staticlib", "cdylib"]

# ============================================================================
# 项目依赖
# ============================================================================

[dependencies]
# 日期时间处理 - 用于日志时间戳、分片时间等
chrono = { version = "0.4.38", features = ["serde"] }

# ORM 框架 - 用于数据库操作 (支持 SQLite, PostgreSQL, MySQL)
diesel = { version = "2.2.0", features = ["sqlite", "postgres", "mysql"] }

# 异步 SQL 工具包 - 用于异步数据库操作
sqlx = { version = "0.8.6", features = ["sqlite", "postgres", "mysql", "runtime-tokio"] }

# 异步运行时 - 提供 async/await 支持
tokio = { version = "1.52.0", features = ["full"] }

# 命令行参数解析 - 用于 CLI 工具
clap = { version = "4.6.0", features = ["derive"] }

# 序列化框架 - 用于 JSON 序列化/反序列化
serde = { version = "1.0.203", features = ["derive"] }

# JSON 处理
serde_json = "1.0.117"

# 错误处理 - 简化错误处理
anyhow = "1.0.86"

# 日志接口
log = "0.4.21"

# 环境日志记录器
env_logger = "0.11.3"

# 异步 trait 支持
async-trait = "0.1.89"

# Redis 客户端 - 用于缓存和会话存储
redis = "0.27.5"

# HTTP 服务器 - 用于 API 服务模式
axum = "0.8.0"
tower = "0.5.0"
tower-http = { version = "0.6.0", features = ["cors", "trace"] }
tokio-postgres = "0.7.10"

# 开发依赖
[dev-dependencies]
# Tokio 测试工具
tokio-test = "0.4.4"

# ============================================================================
# 发布配置
# ============================================================================

[profile.release]
# 优化级别: 3 = 最大优化
opt-level = 3
# 链接时优化: true = 跨 crate 优化,生成更小更快的代码
lto = true
# 代码生成单元: 1 = 最大优化,减少生成代码大小
codegen-units = 1
# Panic 处理: abort = 不展开栈,更小更快的发布构建
panic = "abort"

# 开发配置
[profile.dev]
# 优化级别: 0 = 无优化,加快编译速度
opt-level = 0
# 调试信息: true = 包含调试符号
debug = true

# ============================================================================
# 特性配置
# ============================================================================

[features]
default = []
# Oracle 数据库支持(需要安装 Oracle Client 库)
oracle = []

# ============================================================================
# 依赖说明
# ============================================================================
#
# 核心依赖:
#   - sqlx: 异步数据库访问,支持连接池、事务、Prepared Statements
#   - diesel: 成熟的 ORM,支持类型安全的查询构建
#   - chrono: 日期时间处理
#
# 异步支持:
#   - tokio: Rust 主流异步运行时
#   - async-trait: 支持 async fn in traits
#
# 多语言 FFI:
#   - staticlib/cdylib: 生成 C 兼容的库
#
# 使用建议:
#   - 发布到 crates.io: cargo publish
#   - 本地开发: cargo build
#   - 运行测试: cargo test
#   - 生成文档: cargo doc
#
# ============================================================================