nimbold/Firelink
GitHub: nimbold/Firelink
一款基于 Rust/Tauri 的跨平台桌面下载管理器,提供多线程加速、媒体提取和浏览器集成等能力。
Stars: 21 | Forks: 3

# Firelink
**一款快速、专注的桌面下载管理器,适用于 macOS、Windows 和 Linux。**
[](https://github.com/nimbold/Firelink/releases)
[](#platforms)
[](#platforms)
[](#platforms)
[](https://tauri.app/)
[](https://www.rust-lang.org/)
[](https://react.dev/)
[](LICENSE)
[](https://github.com/nimbold/Firelink/actions/workflows/ci.yml)
[功能](#features) · [安装](#installation) · [浏览器扩展](#browser-extension) · [开发](#development) · [发布说明](CHANGELOG.md)
## 为什么选择 Firelink
Firelink 专为再次渴望一款真正桌面下载管理器的用户而打造:支持快速的多线程分段传输、浏览器捕获、媒体提取、定时任务、错误恢复,并可清晰控制文件的存放位置。1.0.0 版本完成了从早期仅限 macOS 的 Swift 应用向采用 React 和 TypeScript 接口的现代 Rust/Tauri 应用程序的全面迁移。
该应用程序将繁重的任务保留在本地原生执行。下载过程由 Rust 后端协调,通过 aria2 加速,利用 yt-dlp 和 FFmpeg 丰富媒体工作流,并使用 SQLite 在本地持久化数据,从而确保下载队列在应用重启和更新后依然存在。
## 功能
- **快速的多线程分段下载**,由 aria2 驱动,支持自定义连接数、重试次数和速度限制。
- **媒体提取**,通过 yt-dlp、FFmpeg 和 Deno 处理视频/音频链接,并提供更丰富的格式选择。
- **真正的“新建下载”窗口**,适用于手动添加、扩展捕获和媒体下载,包括在下载开始前设置元数据、处理重复项以及选择保存位置。
- **持久化队列管理**,具备安全的并发限制、暂停/恢复、重试、重新下载、排序、多选和批量控制功能。
- **下载定时任务**,支持启动/停止时间窗口、限速工具以及可选的队列后置操作。
- **智能化组织**,通过分类、默认文件夹、针对单个下载的覆盖设置以及打开/显示/移至废纸篓等操作实现。
- **私密浏览器移交**,通过经过身份验证的本地配对实现,并带有重放保护和桌面服务器校验。
- **原生桌面集成**,包括托盘控制、通知、完成提示音、防止系统休眠,以及在可用时支持 OS 密钥串。
- **内置诊断**,提供引擎健康检查、结构化日志和打包引擎验证。
## 安装
从 [GitHub Releases](https://github.com/nimbold/Firelink/releases) 下载最新的桌面版本。
| 平台 | 安装包 | 说明 |
| --- | --- | --- |
| **macOS Apple silicon** | `.dmg` | 未签名且未经公证。请通过 Finder 打开,或在 **系统设置 -> 隐私与安全性** 中批准一次。 |
| **Windows x64** | NSIS `.exe` 安装程序 | 未签名。在添加代码签名之前,Windows SmartScreen 可能会发出警告。 |
| **Linux x64** | `.AppImage` | 如果您的桌面环境没有自动处理,请在启动前将其设为可执行。 |
生产环境的打包文件中已包含目标平台所需的媒体引擎。用户在正常使用应用时,无需安装 aria2、yt-dlp、FFmpeg、Deno、Python、Homebrew 或任何包管理器。
## 浏览器扩展
Firelink Companion 可将您的浏览器连接到桌面应用,使得链接和浏览器下载可以在 Firelink 中打开,而不是消失在浏览器默认的下载栏中。
它提供以下功能:
- **自动捕获**普通的浏览器下载,同时仍会将每个捕获的链接路由至 Firelink 的“新建下载”窗口。
- **上下文菜单操作**,包含“使用 Firelink 下载”以及处理选定的链接。
- **签名的本地请求**,使用来自 **设置 -> 集成** 的配对 token。
- **服务器身份验证**,确保扩展程序仅信任真正的本地 Firelink 应用。
- **离线安全机制**,当 Firelink 关闭或拒绝移交时,会恢复浏览器的下载。
- **协议感知兼容性**,在自动捕获可能取消浏览器下载之前,会拒绝较旧的桌面版本。
安装扩展后,打开 Firelink,然后在 **设置 -> 集成** 中进行配对。Firefox 附加组件维护在 [Firelink-Extension](https://github.com/nimbold/Firelink-Extension) 仓库中,并且也作为 `Extensions/Firefox` 子模块包含在此处。
## 平台
| 目标平台 | 状态 |
| --- | --- |
| **macOS arm64** | 支持。支持自动化原生构建、引擎验证、打包启动冒烟测试以及未签名的 DMG 打包。 |
| **Windows x64** | 支持。支持原生 GitHub Actions 构建、引擎验证、静默安装程序冒烟测试以及 NSIS 打包。 |
| **Linux x64** | 支持。支持原生 GitHub Actions 构建、引擎验证、AppImage 重新打包以及 xvfb 启动冒烟测试。 |
## 开发
### 前置条件
- Node.js 22 或更高版本
- npm
- Rust 和 Cargo
- [Tauri 2 平台前提条件](https://v2.tauri.app/start/prerequisites/)
克隆包含其浏览器扩展子模块的仓库:
```
git clone --recurse-submodules https://github.com/nimbold/Firelink.git
cd Firelink
```
安装依赖并启动桌面应用:
```
npm install
npm run tauri dev
```
运行核心检查:
```
node --test scripts/*.node-test.js
npm test -- --run
npm run build
cd src-tauri
cargo test --all-targets
```
创建生产环境包:
```
npm run tauri build
```
macOS 开发使用 `src-tauri/binaries` 中锁定的 payload。Windows 和 Linux 的 payload 从通过校验和固定的归档中提供:
```
node scripts/provision-engines.js --target x86_64-pc-windows-msvc
node scripts/provision-engines.js --target x86_64-unknown-linux-gnu
```
构建暂存区仅包含当前目标。请参阅 `engines.lock.json`、`engine-sources.lock.json` 和 [RELEASE.md](RELEASE.md)。
## 仓库结构
```
.
├── src/ React and TypeScript interface
├── src-tauri/ Rust backend, Tauri config, and native tests
├── scripts/ Engine provisioning, release, and smoke-test tooling
└── Extensions/Firefox/ Firelink Companion submodule
```
## 帮助与项目状态
- 在 [GitHub Issues](https://github.com/nimbold/Firelink/issues) 中报告 bug 或请求改进。
- 阅读 [CHANGELOG.md](CHANGELOG.md) 了解发布历史。
- 查看 [RELEASE.md](RELEASE.md) 了解打包策略和发布验证。
## 技术与致谢
Firelink 的诞生离不开以下开源项目:
- **[Tauri 2](https://tauri.app/)** 提供轻量级的桌面 runtime
- **[Rust](https://www.rust-lang.org/)** 和 **[Tokio](https://tokio.rs/)** 提供原生应用程序逻辑
- **[React](https://react.dev/)** 和 **[TypeScript](https://www.typescriptlang.org/)** 提供用户界面
- **[Zustand](https://zustand-demo.pmnd.rs/)** 提供前端状态管理
- **[SQLite](https://www.sqlite.org/)** 提供本地持久化数据
- **[aria2](https://aria2.github.io/)** 提供多线程分段下载
- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)**、**[FFmpeg](https://ffmpeg.org/)** 和 **[Deno](https://deno.com/)** 提供媒体提取和处理
## 许可证
Firelink 基于 [MIT 许可证](LICENSE) 发布。
标签:aria2, React, Rust, Syscalls, Tauri, yt-dlp, 下载工具, 可视化界面, 桌面应用, 网络流量审计, 通知系统