nimbold/Firelink

GitHub: nimbold/Firelink

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

Stars: 21 | Forks: 3

Firelink # Firelink **一款快速、专注的桌面下载管理器,适用于 macOS、Windows 和 Linux。** [![Version](https://img.shields.io/badge/version-1.0.1-6f42c1?style=flat-square)](https://github.com/nimbold/Firelink/releases) [![macOS](https://img.shields.io/badge/macOS-111111?style=flat-square&logo=apple&logoColor=white)](#platforms) [![Windows](https://img.shields.io/badge/Windows-0078D6?style=flat-square&logo=windows11&logoColor=white)](#platforms) [![Linux](https://img.shields.io/badge/Linux-FCC624?style=flat-square&logo=linux&logoColor=black)](#platforms) [![Tauri](https://img.shields.io/badge/Tauri-2-24C8DB?style=flat-square&logo=tauri&logoColor=white)](https://tauri.app/) [![Rust](https://img.shields.io/badge/Rust-backend-000000?style=flat-square&logo=rust)](https://www.rust-lang.org/) [![React](https://img.shields.io/badge/React-TypeScript-61DAFB?style=flat-square&logo=react&logoColor=111111)](https://react.dev/) [![License](https://img.shields.io/github/license/nimbold/Firelink?style=flat-square)](LICENSE) [![CI](https://img.shields.io/github/actions/workflow/status/nimbold/Firelink/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/nimbold/Firelink/actions/workflows/ci.yml) [功能](#features) · [安装](#installation) · [浏览器扩展](#browser-extension) · [开发](#development) · [发布说明](CHANGELOG.md)

Firelink dark theme main window Firelink dark theme add window Firelink light theme main window Firelink light theme add window
View more screenshots
Firelink dark theme settings Firelink light theme settings
## 为什么选择 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 或任何包管理器。 ## 浏览器扩展
Install Firelink Companion on Firefox
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, 下载工具, 可视化界面, 桌面应用, 网络流量审计, 通知系统