# thunder-download **Repository Path**: Ddull/thunder-download ## Basic Information - **Project Name**: thunder-download - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-28 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

ThunderDownload Logo

ThunderDownload

一款现代化的跨平台高速下载管理器
基于 Tauri 2 + React + TypeScript + Rust 构建

功能特性快速开始构建项目结构贡献许可证

Tauri 2.0 React 18 TypeScript Rust MIT License Cross Platform

Issues Stars Forks

--- 简体中文 | [English](README_EN.md) --- # 功能特性 ## 下载管理 - **断点续传** — HTTP Range 请求,暂停后可从断点恢复下载 - **并发控制** — Semaphore 信号量限制同时下载数,超出自动排队 - **下载限速** — 平滑速度限制,避免占用全部带宽 - **批量操作** — 全选、批量暂停/恢复/删除 - **剪贴板检测** — 自动识别剪贴板中的下载链接 ## 文件管理 - **目录浏览** — 真实文件系统浏览,支持列表/网格视图 - **类型筛选** — 9 种文件类型分类(视频/音频/图片/文档/压缩包/代码等) - **文件操作** — 打开、重命名、删除、在资源管理器中定位 ## 内置浏览器 - **多标签页** — 集成 WebView 浏览器,支持多标签 - **导航控制** — 前进、后退、刷新、主页 ## 系统集成 - **系统托盘** — 最小化到托盘,后台运行不干扰 - **系统通知** — 下载完成后 Toast 通知 - **开机自启** — 可选开机自动启动 - **单实例运行** — 防止重复启动,已有窗口自动前置 - **启动加载动画** — 应用启动时的品牌展示 ## 界面设计 - **深色/浅色主题** — 支持切换,CSS 变量驱动 - **自定义标题栏** — 无边框窗口 + 自定义标题栏 - **实时速度图表** — Canvas 绘制,展示最近 60 秒下载速度趋势 - **文件类型图标** — 按扩展名显示不同图标 # 截图预览
下载管理 文件管理
下载管理 文件管理
# 快速开始 ## 环境要求 | 依赖 | 最低版本 | 推荐版本 | |------|---------|---------| | Node.js | 18.x | 20.x+ | | Rust | 1.70+ | 最新 stable | | npm | 9.x | 10.x | > **Windows 用户**:需要安装 [Microsoft Visual Studio C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) ## 安装 ```bash # 克隆仓库 git clone https://gitee.com/Ddull/thunder-download.git cd thunder-download # 安装前端依赖 npm install # 生成应用图标(首次需要) npm run tauri icon src-tauri/icons/icon.svg ``` ## 开发模式 ```bash npm run tauri dev ``` 应用会自动启动开发服务器和 Tauri 窗口。 # 构建 ```bash # 构建生产版本 npm run tauri build ``` 构建产物位于 `src-tauri/target/release/bundle/`: | 平台 | 产物 | |------|------| | Windows | `.msi` 安装包 / `.exe`(NSIS) | | macOS | `.dmg` / `.app` | | Linux | `.deb` / `.rpm` / `.AppImage` | # 项目结构 ``` thunder-download/ ├── public/ │ └── icon.svg # 应用品牌图标 ├── src/ # 前端源码(React + TypeScript) │ ├── components/ │ │ ├── TitleBar.tsx # 自定义标题栏 │ │ ├── Sidebar.tsx # 侧边栏导航 │ │ ├── DownloadPanel.tsx # 下载管理面板 │ │ ├── BrowserPanel.tsx # 内置浏览器面板 │ │ ├── FilePanel.tsx # 文件管理面板 │ │ ├── SettingsPanel.tsx # 设置面板 │ │ ├── NewDownloadDialog.tsx # 新建下载对话框 │ │ ├── SpeedChart.tsx # 实时速度图表 │ │ ├── StatusBar.tsx # 底部状态栏 │ │ ├── ConfirmDialog.tsx # 确认弹窗 │ │ └── ... │ ├── store/ │ │ └── index.ts # Zustand 状态管理(4 个 Store) │ ├── lib/ │ │ └── utils.ts # 工具函数(格式化、图标映射等) │ ├── App.tsx # 根组件 + 启动加载屏 │ ├── main.tsx # 入口文件 │ └── index.css # 全局样式 + 主题变量 ├── src-tauri/ # Rust 后端(Tauri 2) │ ├── src/ │ │ └── main.rs # 全部 Rust 逻辑(下载引擎、IPC 命令) │ ├── capabilities/ # Tauri 权限配置 │ ├── icons/ # 应用图标(由 `tauri icon` 生成) │ ├── Cargo.toml # Rust 依赖配置 │ └── tauri.conf.json # Tauri 应用配置 ├── package.json ├── vite.config.ts ├── tailwind.config.js └── tsconfig.json ``` ## 技术架构 ``` ┌─────────────────────────────────────────────┐ │ UI Layer (React Components) │ │ TitleBar │ Sidebar │ [Download │ Browser │ │ │ │ StatusBar │ File │ Settings] │ ├─────────────────────────────────────────────┤ │ State Management (Zustand Stores) │ │ useDownloadStore │ useSettingsStore │ ... │ ├─────────────────────────────────────────────┤ │ Tauri IPC (invoke / listen) │ ├─────────────────────────────────────────────┤ │ Rust Backend (main.rs) │ │ DownloadState │ run_download() │ Commands │ └─────────────────────────────────────────────┘ ``` | 层级 | 技术 | 说明 | |------|------|------| | 前端 UI | React 18 + TypeScript | 组件化开发 | | 样式 | Tailwind CSS + CSS Variables | 主题切换 | | 状态管理 | Zustand (4 个 Store) | 持久化到 localStorage | | 桌面框架 | Tauri 2.0 | 轻量级,WebView 渲染 | | 下载引擎 | Rust + reqwest | 流式下载 + 断点续传 | | IPC 通信 | Tauri invoke / event | 前后端双向通信 | # 技术栈详情 ### 前端 | 库 | 用途 | |----|------| | React 18 | UI 框架 | | TypeScript 5 | 类型安全 | | Zustand | 状态管理 | | Tailwind CSS 3 | 原子化 CSS | | Lucide React | 图标库 | | Radix UI | 无障碍 UI 基础组件 | | clsx + tailwind-merge | 样式合并 | ### 后端 (Rust) | 库 | 用途 | |----|------| | Tauri 2.0 | 桌面应用框架 | | tokio | 异步运行时 | | reqwest | HTTP 客户端(流式下载) | | serde / serde_json | 序列化 | | tauri-plugin-single-instance | 单实例锁 | | tauri-plugin-notification | 系统通知 | | dirs | 系统目录 | # 配置说明 设置文件存储在: - **Windows**: `%LOCALAPPDATA%/thunder-download/settings.json` - **macOS**: `~/Library/Application Support/thunder-download/settings.json` - **Linux**: `~/.local/share/thunder-download/settings.json` # 贡献 欢迎任何形式的贡献!无论是提交 Bug、改进建议还是 Pull Request。 请阅读 [贡献指南](CONTRIBUTING.md) 了解详细信息。 ## 开发流程 1. Fork 本仓库 2. 创建特性分支:`git checkout -b feature/amazing-feature` 3. 提交更改:`git commit -m 'Add amazing feature'` 4. 推送分支:`git push origin feature/amazing-feature` 5. 提交 Pull Request # 许可证 本项目采用 [MIT 许可证](LICENSE) 开源。