Files
playground/r/data-transfer/README.md
XuanLee-HEALER df39693dff commit
2025-11-10 15:30:21 +08:00

4.2 KiB
Raw Blame History

Data Transfer

一个用于自动化处理工作中繁琐任务的命令行工具。

项目简介

Data Transfer 是一个基于 Rust 开发的命令行程序,旨在帮助快速处理工作中所需执行的重复性、繁琐任务。通过模块化设计和良好的错误处理机制,该工具提供了可靠且易于扩展的任务自动化解决方案。

特性

  • 🚀 高性能: 基于 Rust 构建,执行速度快,内存安全
  • 🔧 模块化设计: 清晰的代码结构,易于维护和扩展
  • 命令行友好: 使用 clap 提供完善的命令行参数解析
  • 🛡️ 健壮的错误处理: 使用 anyhow 和 thiserror 进行显式错误管理
  • 📝 详细的日志: 支持 verbose 模式查看详细运行信息

项目结构

data-transfer/
├── Cargo.toml              # 项目配置和依赖管理
├── README.md               # 项目文档
├── PROJECT_MILESTONES.md   # 版本里程碑和依赖管理
└── src/
    ├── main.rs             # 程序入口
    ├── cli.rs              # 命令行参数定义
    ├── config.rs           # 配置管理
    ├── error.rs            # 错误类型定义
    └── commands/           # 命令实现模块
        ├── mod.rs          # 命令模块导出
        └── example.rs      # 示例命令实现

技术架构

核心模块

  • cli: 使用 clap 的派生 API 定义命令行接口
  • config: 管理应用程序配置和参数
  • error: 自定义错误类型,提供清晰的错误上下文
  • commands: 所有子命令的实现逻辑

设计原则

项目严格遵循以下 Rust 最佳实践:

  1. 高内聚、低耦合: 功能模块独立,接口清晰
  2. 显式错误处理: 使用 Result<T, E> 处理可恢复错误
  3. 所有权管理: 合理使用借用和生命周期
  4. 并发安全: 使用标准库同步原语保证线程安全
  5. 测试驱动: 为核心逻辑提供单元测试

安装

前置要求

  • Rust 1.70 或更高版本
  • Cargo

从源码构建

# 克隆仓库
git clone <repository-url>
cd data-transfer

# 构建项目
cargo build --release

# 可执行文件位于 target/release/data-transfer

使用方法

基本命令

# 查看帮助信息
./data-transfer --help

# 启用详细日志模式
./data-transfer --verbose

# 运行示例命令
./data-transfer example --input "test data"

命令参数

  • -v, --verbose: 启用详细日志输出
  • -h, --help: 显示帮助信息
  • -V, --version: 显示版本信息

开发指南

添加新命令

  1. src/commands/ 目录下创建新模块文件
  2. src/cli.rs 中的 Commands 枚举添加新命令变体
  3. src/commands/mod.rs 中导出新命令
  4. src/main.rs 中处理新命令的执行逻辑
  5. 为新命令编写单元测试

运行测试

# 运行所有测试
cargo test

# 运行特定测试
cargo test test_name

# 显示测试输出
cargo test -- --nocapture

代码规范

  • 使用 snake_case 命名函数、变量和模块
  • 使用 UpperCamelCase 命名类型struct、enum、trait
  • 所有公共 API 必须包含文档注释(///
  • 禁止在生产代码中使用 unwrap()expect()
  • 优先使用不可变引用 &,仅在必要时使用 &mut

错误处理规范

  • 可恢复错误使用 Result<T, E> 类型
  • 使用 ? 操作符传播错误
  • 自定义错误类型继承 thiserror::Error
  • 错误消息必须包含足够的上下文信息

依赖说明

核心依赖库:

  • clap: 命令行参数解析库,提供强大的 CLI 构建能力
  • anyhow: 简化错误处理和传播
  • thiserror: 自定义错误类型的派生宏

详细依赖信息请参考 PROJECT_MILESTONES.md

许可证

[待补充]

贡献指南

欢迎贡献代码和提交问题报告!请确保:

  1. 代码符合项目规范
  2. 添加必要的测试
  3. 更新相关文档
  4. 提交前运行 cargo fmtcargo clippy

路线图

当前版本为 0.1.0,处于初始开发阶段。后续功能将根据实际需求逐步添加。

详细的版本规划和功能列表请查看 PROJECT_MILESTONES.md

联系方式

[待补充]