基于 Wails + aria2 架构的多线程多任务下载器桌面应用。
- 多任务并发下载(可配置并发数)
- 任务队列管理
- 断点续传支持
- 实时进度同步
- 系统托盘后台运行
- aria2 自动检测/下载/启动
- SQLite 数据持久化
- 前端:React + TypeScript + Ant Design + Zustand
- 桌面框架:Wails v2
- 下载引擎:aria2
- 后端:Go
- 数据存储:SQLite
alldown/
├── app/ # Wails App 层
├── internal/
│ ├── aria2/ # aria2 RPC 封装
│ ├── config/ # 配置管理
│ ├── downloader/ # 下载调度核心
│ ├── runtime/ # aria2 进程管理
│ ├── storage/ # SQLite 存储
│ ├── tray/ # 系统托盘
│ └── utils/ # 工具函数
├── frontend/ # React 前端
├── main.go # 程序入口
└── wails.json # Wails 配置
- 安装 Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest- 安装 aria2:
# macOS
brew install aria2
# Linux
sudo apt install aria2
# Windows
# 从 https://github.com/aria2/aria2/releases 下载- 安装前端依赖:
cd frontend
npm installwails devwails build| 方法 | 说明 |
|---|---|
AddDownload(url, savePath) |
添加下载任务 |
PauseTask(taskId) |
暂停任务 |
ResumeTask(taskId) |
恢复任务 |
RemoveTask(taskId) |
删除任务 |
GetTasks() |
获取任务列表 |
GetStats() |
获取统计信息 |
GetConfig() |
获取配置 |
UpdateConfig(config) |
更新配置 |
| 事件 | 说明 |
|---|---|
task:progress |
进度更新 |
task:active |
开始下载 |
task:paused |
已暂停 |
task:complete |
下载完成 |
task:error |
下载错误 |
{
"maxConcurrent": 5, // 最大并发数
"defaultSavePath": "./downloads", // 默认下载路径
"aria2RPCPort": 6800, // aria2 RPC 端口
"aria2RPCSecret": "token", // aria2 RPC 密钥
"autoStart": true // 启动时自动开始下载
}MIT License