HaHaen-IDM 是面向 Windows 11 的绿色便携式分段下载器。解压后直接运行 HaHaen-IDM.exe 即可使用,不需要管理员权限,不写入注册表,也不会自动执行下载完成的文件。
核心下载流程和 Windows 11 风格界面已经完成,支持:
- HTTP / HTTPS 下载地址检查、重定向和服务器文件名识别。
- 通过一次 Range 探测识别文件大小与服务器分段能力;必要时使用 HEAD 请求兜底。
- HTTP Range 分段下载,支持手动选择 1~32 个连接。
- 自动连接策略:不支持 Range 或文件大小未知时使用单连接;已知大小时按文件大小选择 1、2、4 或 8 个目标连接。
- 自动连接从较低并发开始,并按下载状态逐步扩容,降低服务器拒绝连接的概率。
- 分段使用独立的 HTTP/1.1 连接,校验服务端返回的
Content-Range,完成后按顺序合并。 - 服务器不支持 Range 时自动降级为单连接下载,并在界面提示原因。
- 分段临时文件、断点续传和程序重启后的未完成进度恢复。
- 网络错误、429 和 5xx 错误自动重试,已完成的分段不会因重试丢失。
- 开始、暂停、继续、失败重试、删除任务记录和打开保存目录。
- 目标文件支持覆盖、自动重命名和发现同名时取消。
- 合并后校验最终文件大小,校验失败时任务不会标记为成功。
- 任务列表实时显示总进度、速度、剩余时间、连接数量和每个分段的状态。
- 任务和设置自动保存,支持最多 8 个同时下载任务。
- 支持默认下载目录、自动开始、自动校验、读取超时、失败重试次数和浅色 / 深色 / 跟随系统主题。
- 支持任务搜索、全部 / 进行中 / 已完成筛选、任务详情、复制下载地址、打开文件和打开文件夹。
- 解压便携版压缩包。
- 双击运行
HaHaen-IDM.exe。 - 点击“新建下载任务”,粘贴 HTTP / HTTPS 地址。
- 确认文件名、保存目录、连接数量和同名文件处理方式。
- 点击“检查并开始”,下载过程中可以暂停或继续。
程序默认将任务数据保存在 exe 所在目录,移动整个软件文件夹后仍可继续使用。删除任务记录或清理临时文件不会删除已经保存的正式文件。
HaHaen-IDM.exe
data/
├─ tasks.json # 任务记录和设置
└─ temp/
└─ <task-id>/ # 下载中的分段临时文件
任务 URL、文件名、保存路径和设置只保存在本机,不会上传到第三方服务。文件名会清理 Windows 非法字符,并限制为用户选择的保存目录下的文件名。
- Windows 11 64 位
- Node.js 20+
- pnpm
- Rust stable
- WebView2
安装依赖:
pnpm install仅启动前端预览:
pnpm dev启动完整 Tauri 应用:
pnpm tauri:dev前端预览不包含真实下载、目录选择和打开文件等 Tauri 原生能力。
运行前端测试和生产构建:
pnpm test
pnpm build运行 Rust 单元测试:
cargo test --manifest-path src-tauri/Cargo.toml构建 Tauri 安装包:
pnpm tauri:build安装包和其他 Tauri 构建产物位于 src-tauri/target/release/bundle。
生成绿色便携版目录和 ZIP:
pnpm package:portable该命令会自动执行 Tauri release 构建,然后生成:
portable/HaHaen-IDM.exeportable/README.mdportable/HaHaen-IDM-icon-v2.pngportable/icon.icoHaHaen-IDM-portable.zip
src/ React 前端、类型、样式和 Vitest 测试
src/App.tsx 页面状态、任务列表、弹窗和任务控制
src/types.ts 前后端共享数据结构
src/styles.css Windows 11 风格界面样式
src-tauri/src/main.rs Tauri 命令、下载引擎、持久化和文件操作
src-tauri/tauri.conf.json Tauri 窗口、安全策略和打包配置
scripts/package-portable.ps1 绿色版目录和 ZIP 打包脚本
portable/ 当前便携版输出目录
- 完整性检查目前使用服务器文件大小、分段范围和最终文件大小;尚未实现 MD5、SHA-1 或 SHA-256 校验。
- 当前设置界面已提供读取超时和失败重试次数;系统代理、速度限制、Windows 原生通知和下载完成后自动打开目录等高级能力仍属于后续扩展项。
- 需要登录、签名过期、强制 Cookie 或特殊鉴权的地址,仍需要用户提供可直接访问的下载链接。
- 下载核心面向普通 HTTP / HTTPS 直链,不承诺兼容流媒体协议、P2P 协议或需要专用客户端的下载服务。
- React 18 + TypeScript + Vite
- Tauri 2
- Rust + Tokio
- Reqwest + Rustls
- Vitest