【免费下载链接】prism-download-manager
The fast, beautiful, open-source download manager for Windows, macOS and Linux — up to 32 connections, browser integration, video & MP3 downloads, crash-safe resume.
Prism 下载管理器(prism-download-manager)是一款用 Rust + Tauri 编写的开源下载管理工具。本文将带你完整走一遍「从源码构建」流程:搭环境、编译、测试、打包发布,适合想动手体验 Rust 桌面应用开发的初学者。
一、构建前先认识:Prism 的技术栈
在写第一行构建命令之前,先搞清楚代码由哪些部分组成,编译时才不会手忙脚乱:
| 层级 | 技术 | 位置 |
|---|---|---|
| 下载引擎 | Rust(tokio + reqwest,多连接分段下载) | crates/prism-engine/ |
| 应用核心 | Rust(SQLite、队列、调度器、浏览器 IPC) | crates/prism-core/ |
| 桌面外壳 | Tauri 2(原生窗口、托盘、系统通知) | app/src-tauri/ |
| 前端界面 | React 19 + TypeScript + Vite | app/src/ |
| 浏览器插件 | Manifest V3(Chromium + Firefox 双构建) | extension/ |
整个工程是一个 Cargo workspace,所有 Rust 包都注册在 Cargo.toml 的members列表里;工作区统一维护版本号(当前 1.1.7)和公共依赖。完整架构说明可阅读 ARCHITECTURE.md。
二、环境准备:Rust + Node 双工具链
Prism 的构建同时依赖 Rust 和 Node.js 两套工具链,这是 Tauri 类项目的典型配置——Rust 负责后端与打包,Node 负责前端 UI 和浏览器插件:
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Rust | stable ≥ 1.88 | rustup default stable即可 |
| Node.js | 24 LTS(npm 11) | 构建 UI 与浏览器插件 |
| Windows | VS 2022 Build Tools(C++ 桌面开发) | WebView2 运行时系统自带 |
| Linux (Debian/Ubuntu 22.04+) | 一组 apt 包 | 见下方命令 |
| ffmpeg | 可选 | 不装时视频功能首次运行会自动下载校验过的构建 |
Linux 下一次性安装系统依赖:
sudo apt install build-essential curl wget file libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev librsvg2-dev libxdo-dev patchelf rpm其中
rpm仅在需要构建.rpm包时才必要,其余为 Tauri 在 Linux 上的硬性依赖。
三、克隆仓库,两步装好前端依赖
git clone https://gitcode.com/gh_mirrors/pr/prism-download-manager prism cd prism npm ci --prefix app # 安装主应用 UI 依赖 npm ci --prefix extension # 安装浏览器插件依赖使用npm ci而不是npm install的好处是严格按 lockfile 安装,保证你构建出的版本与仓库锁定的依赖完全一致——这对可复现的「从源码构建」非常重要。
四、开发模式编译:一条命令跑起桌面应用
安装完成后,进入app/目录执行:
cd app npm run tauri:dev这条命令会先编译prism-native-host辅助程序(浏览器通信用的 sidecar),再启动 Vite 开发服务器,最后由 Tauri 编译 Rust 代码并弹出带热重载的窗口。首次编译 Rust 依赖需要几分钟,之后热重载会很快。
如果你只关心 UI、暂时不想编译 Rust,还可以用内置的演示后端在普通浏览器里跑界面:
npm run dev # 然后打开 http://localhost:1420构建成功后,你会看到 Prism 的主窗口:
macOS 用户请走独立的构建指南,重点是 Xcode 命令行工具、ffmpeg安装与 Universal 二进制打包:docs/BUILD_MACOS.md。
五、测试与代码检查:像 CI 一样验证你的构建
Prism 的测试矩阵覆盖了 Rust 引擎、UI 和插件三层,全部命令在仓库根目录执行:
cargo test --workspace --exclude prism-app # 引擎/核心/视频/种子/宿主 的 Rust 测试 cargo clippy --workspace --all-targets -- -D warnings npm test --prefix app && npm run typecheck --prefix app npm test --prefix extension && npm run typecheck --prefix extension npm run e2e --prefix extension # 浏览器 ↔ 宿主 ↔ 应用 的 Playwright 端到端测试其中值得新手了解的是prism-testserver(crates/prism-testserver/):一个可配置的本地 HTTP 服务器,能模拟限速、断连、Range 不支持等场景,引擎测试全部跑在本地、结果可复现。官方基准报告见 docs/benchmarks.md:在每连接 4 MiB/s 的服务器上,多连接分段引擎比单连接快约 15 倍。
下图是详情窗口的实测效果:16 条连接并行工作,进度条与速度图实时刷新:
六、发布构建:一次命令产出全套安装包
正式发布分两步:先构建浏览器插件(插件会被打包进安装包资源目录),再执行 Tauri 完整构建:
npm run build --prefix extension # 产出 extension/build/{chromium,firefox} cd app npm run tauri:build # 编译 sidecar + UI + Rust,并打包所有安装格式产物统一输出到target/release/bundle/,各平台对应文件如下:
| 平台 | 产物 |
|---|---|
| Windows | nsis/Prism_<ver>_x64-setup.exe、msi/Prism_<ver>_x64_en-US.msi |
| Linux | deb/Prism_<ver>_amd64.deb、rpm/Prism-<ver>-1.x86_64.rpm、appimage/Prism_<ver>_amd64.AppImage |
| macOS | macos/Prism.app、dmg/Prism_<ver>_<arch>.dmg |
几个实用技巧:
- 只打包部分格式:
npx tauri build --bundles nsis(或msi、deb、appimage),打包目标列表定义在 tauri.conf.json; - Windows 绿色版:构建完成后运行 scripts/make-portable.ps1,得到免安装 zip;
- 在 Windows 上出 Linux 包:用 WSL2 + Ubuntu 22.04 交叉构建即可(官方 Linux 包就是这么产出的),注意把代码放在 WSL 文件系统内而非
/mnt/c,否则 IO 会非常慢; - macOS 通用二进制:分别编译 arm64 与 x86_64 的 sidecar 后用
lipo合并,再执行npx tauri build --target universal-apple-darwin。
各安装包内部还包含浏览器原生消息注册、.torrent文件关联等钩子脚本,集中在 packaging/ 目录,例如 Linux 的 postinst.sh 会写入各浏览器的 native messaging 清单。
构建出的应用可通过设置界面验证外观与主题配置,构建结果应与仓库截图一致:
七、常见问题速查
| 现象 | 原因与处理 |
|---|---|
Linux 编译报webkit2gtk找不到 | 安装libwebkit2gtk-4.1-dev,见第二节 apt 命令 |
| Windows 窗口白屏/打不开 | 确认 WebView2 运行时可用(Win10/11 默认预装) |
| WSL 构建极慢 | 代码放在~/等 Linux 路径下,避免/mnt/c |
| 视频功能缺 ffmpeg | 非阻塞问题:应用会在首次视频下载时自动下载并校验 |
| clippy 报一堆警告 | 项目以-D warnings为门槛,提交前必须全绿 |
八、小结
到这里,你已经完成了 Prism 下载管理器「从源码构建」的完整闭环:
- 准备:Rust stable ≥ 1.88 + Node 24 + 平台系统依赖;
- 依赖:
npm ci --prefix app与--prefix extension; - 开发:
npm run tauri:dev热重载调试; - 验证:
cargo test+clippy+vitest+ Playwright e2e 四层测试; - 发布:
npm run tauri:build一次产出 NSIS/MSI/deb/rpm/AppImage/DMG。
如果你希望继续深入,可以从引擎层读起:crates/prism-engine/README.md 有完整的 API 说明,贡献规范见 CONTRIBUTING.md,版本更新历史见 docs/RELEASE_NOTES.md。
【免费下载链接】prism-download-manager
The fast, beautiful, open-source download manager for Windows, macOS and Linux — up to 32 connections, browser integration, video & MP3 downloads, crash-safe resume.
相关推荐
OpenIDEA源码构建完整指南:Rust+Tauri跨平台部署实战教程
OpenIDEA源码构建完整指南:Rust+Tauri跨平台部署实战教程 OpenIDEA 是一个用 Rust 重写核心、Tauri 打造外壳的开源 IDE:I
开发工具IDE代码编辑器桌面应用调试器静态分析插件系统版本控制数据库客户端代码智能体从源码构建Alethe桌面应用:Tauri 2 + Rust + React 18开发环境搭建与跨平台编译完整指南
从源码构建Alethe桌面应用:Tauri 2 + Rust + React 18开发环境搭建与跨平台编译完整指南 Alethe 是一款本地优先(local f
scrcpy编译构建:从源码到跨平台发布
scrcpy编译构建:从源码到跨平台发布 本文详细解析了scrcpy项目的完整构建流程,涵盖了从Meson+Ninja构建系统配置、客户端依赖管理(SDL2+F
桌面应用音视频屏幕录制
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考