The-animus-project/Orc-Torrent

GitHub: The-animus-project/Orc-Torrent

一款基于 Rust 共享引擎、支持桌面与 Android 双平台的注重隐私的 BitTorrent 客户端。

Stars: 31 | Forks: 2

# ORC Torrent ![ORC Torrent](https://static.pigsec.cn/wp-content/uploads/repos/cas/ee/ee8d413b81ec8ac708aaad84d8fc0092fef17171a9cf2967bab2ee7ee75578b9.png) **代码仓库:** [github.com/The-animus-project/Orc-Torrent](https://github.com/The-animus-project/Orc-Torrent) **官方网站:** [Orclabs.io](https://orclabs.io) ORC Torrent 是一款注重隐私的去中心化 BitTorrent 客户端。共享的 Rust 引擎为 Electron 桌面应用和原生 Android shell 提供动力,并由 React 提供自适应的桌面和手机界面。 **ORC Torrent 兼容 Android 10+、Windows、macOS 和 Linux。** **最新发布版本:[v2.5.1](https://github.com/The-animus-project/Orc-Torrent/releases/tag/v2.5.1)** — 修复了旧版搜索配置导致 daemon 启动失败的紧急补丁;包含 v2.5.0 ORC Engine 技术栈。 **Android 版现已推出。** 运行 Android 10+ 的手机和平板电脑可以通过已签名的 `arm64-v8a` APK 安装 ORC。请查阅 [Android 安装指南](Install-Instructions/Android.md) 了解下载、验证、侧载以及首次运行设置的相关步骤。

Download for Windows   Download for macOS   Download for Linux

Download for Android

Windows installer · macOS DMG (Apple Silicon and Intel) · Linux AppImage · Android APK — portable zips & other formats

Leave a star on GitHub

**ORC Torrent 正在积极开发中。** 目前的工作重心是 **ORC Engine** —— 桌面端和 Android 端共享的传输边界 —— 包括现代 swarm 网络、可选的 MSE/PE、BEP 6 以及自适应请求调度。我们会随时更新路线图和文档。 ## 下载 预构建的安装程序和便携版压缩包已发布在 **[GitHub Releases](https://github.com/The-animus-project/Orc-Torrent/releases)** 上。CI 构建会在每个 `v*` 标签上运行。 | 平台 | 便携版 (免安装) | 安装程序 | |----------|----------------------|-----------| | **Windows** (x64) | `ORC-TORRENT--win-x64.zip` | `ORC-TORRENT-Setup-.exe` | | **macOS** (arm64 / x64) | `ORC-TORRENT--mac-.zip` | `.dmg`, `.pkg` | | **Linux** (x64) | `ORC-TORRENT--linux-x86_64.AppImage` | `.deb` | | **Android** (arm64, Android 10+) | `ORC-TORRENT--android-arm64-v8a.apk` | 侧载已签名的 APK | **便携版** 构建无需安装程序即可运行 —— 解压或赋予执行权限后,即可启动应用。**安装程序** 会注册快捷方式、菜单项,并(在 Windows/macOS 上)关联 magnet / `.torrent` 文件。 ### 使用 PGP 验证发布构建 已签名的发布构建会附带分离的 ASCII 装甲 PGP 签名。从同一个 [GitHub release](https://github.com/The-animus-project/Orc-Torrent/releases) 下载构建版本及其对应的 `.asc` 文件,然后从本仓库下载 [`ORC-Torrent-Release-Key.asc`](ORC-Torrent-Release-Key.asc)。 导入发布密钥并确认其指纹: ``` gpg --import ORC-Torrent-Release-Key.asc gpg --fingerprint 6D0D5CE9E0DA5A92 ``` 指纹必须为: ``` 094F 3796 D3B6 99DB 5E69 A278 6D0D 5CE9 E0DA 5A92 ``` 在打开或解压之前验证下载的构建。例如: ``` gpg --verify ORC-TORRENT-2.5.1-linux-x86_64.AppImage.asc ORC-TORRENT-2.5.1-linux-x86_64.AppImage ``` 你也可以验证已签名的校验和清单,然后检查其中所有已下载的构建: ``` gpg --verify SHA256SUMS.asc SHA256SUMS shasum -a 256 -c SHA256SUMS ``` 有效的结果会报告由上述密钥生成的正确签名。正确的签名证明文件自签名以来未被更改;在信任该密钥之前,请从可信来源独立确认其指纹。PGP 签名独立于 Windows Authenticode 和 Apple Developer ID 签名,因此操作系统可能仍会显示未经认证的开发者警告。 ## 安装 从 [最新发布版本](https://github.com/The-animus-project/Orc-Torrent/releases/latest) 下载适用于你操作系统的资产。将下文中的 `` 替换为发布标签(例如 `2.5.1`)。 ### Windows | 方式 | 步骤 | |--------|--------| | **便携版** | 下载 `ORC-TORRENT--win-x64.zip` → 解压至任意文件夹 → 运行 **`ORC TORRENT.exe`**。无需管理员权限;可安全保存在 USB 驱动器上。 | | **安装程序** | 下载 `ORC-TORRENT-Setup-.exe` → 运行向导 → 从开始菜单或桌面快捷方式启动 **ORC TORRENT**。 | 首次启动时,由于构建未签名,Windows SmartScreen 可能会发出警告 —— 请选择 **更多信息** → **仍要运行**。便携版和安装程序版本均支持应用内更新(设置 → 更新)。 ### macOS (Apple Silicon 或 Intel) | 方式 | 步骤 | |--------|--------| | **便携版** | 在 Apple Silicon 上下载 `ORC-TORRENT--mac-arm64.zip` 或在 Intel 上下载 `ORC-TORRENT--mac-x64.zip` → 解压 → 打开 **`ORC TORRENT.app`**。 | | **DMG** | 打开 `.dmg` → 将 **ORC TORRENT** 拖入 **应用程序**。 | | **PKG** | 运行 `.pkg` 安装程序 → 按照提示操作。 | macOS 可能会在首次打开时阻止该应用(未认证开发者)。请使用 **右键点击 → 打开**,或在 **系统设置 → 隐私与安全性** 中允许。Apple Silicon 选择 **arm64**,Intel Mac 选择 **x64**。 ### Linux (x64) | 方式 | 步骤 | |--------|--------| | **便携版** | 下载 `ORC-TORRENT--linux-x86_64.AppImage` → `chmod +x ORC-TORRENT-*-linux-x86_64.AppImage` → 运行即可。无需 root 权限或包管理器。 | | **.deb** | `sudo dpkg -i ORC-TORRENT--linux-amd64.deb` → 从应用菜单启动。 | 在某些发行版上,AppImage 需要 [FUSE](https://github.com/AppImage/AppImageKit/wiki/FUSE)(在 Ubuntu/Debian 上为 `libfuse2`)。 ### Android 10+ 从 GitHub Releases 下载 `ORC-TORRENT--android-arm64-v8a.apk`,验证已签名的校验和清单,并允许你的浏览器或文件管理器安装该 APK。首次启动时,使用 Android 的系统文件夹选择器创建或选择一个专用的 ORC 子文件夹。该应用不会请求广泛的存储访问权限,且在卸载后,已完成的文件仍会保留在该共享文件夹中。 默认情况下,传输使用不计量的 Wi-Fi。蜂窝数据和自动 VPN 断开传输暂停功能均需在设置和隐私中明确选择开启。 如需获取完整的下载验证、侧载、引导、更新和故障排除步骤,请阅读 **[在 Android 上安装 ORC Torrent](Install-Instructions/Android.md)**。 ### 安装后 1. 启动 **ORC TORRENT**。桌面端会自动启动其本地 daemon;Android 端会在设备上启动相同的 Rust 引擎。 2. 在桌面端通过拖拽或文件选择器添加 torrent,在移动端通过“添加”表单和 Android 的“打开方式/分享”流程添加。两个平台均接受 magnet 链接和 `.torrent` 文件。 3. 桌面端可以使用 **设置 → 更新**。Android 端的更新则通过从 GitHub Releases 下载下一个已签名的 APK 并覆盖安装现有应用来完成。 如果要从源码编译而不是使用发布版本,请参阅 [从源码构建](#building-from-source) 和 [安装说明](Install-Instructions/)。 ## 目录 - [下载](#downloads) - [使用 PGP 验证发布构建](#verify-a-release-build-with-pgp) - [安装](#installation) - [截图](#screenshots) - [功能](#features) - [与众不同之处](#what-makes-it-different) - [速度对比](#speed-comparison) - [路线图](#roadmap) - [架构](#architecture) - [环境要求](#requirements) - [从源码构建](#building-from-source) — 有关特定操作系统的指南,请参见 [安装说明](Install-Instructions/) - [配置](#configuration) - [使用方法](#usage) - [开发](#development) - [更新日志](#changelog) - [作者](#author) - [许可证](#license) ## 截图 ORC Torrent 桌面客户端截图: | | | |:---:|:---:| | **加载动画** | **主界面** | | ![加载动画](https://static.pigsec.cn/wp-content/uploads/repos/cas/b7/b7216907f2ae2f0dbc90edc8859cf6721d1e1b8bdbe19287de88b1314743ac12.png) | ![主界面](https://static.pigsec.cn/wp-content/uploads/repos/cas/ee/ee8d413b81ec8ac708aaad84d8fc0092fef17171a9cf2967bab2ee7ee75578b9.png) | | **客户端视图** | **客户端视图** | | ![ORC Torrent 客户端](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/3988524b48b1969e2d532e1c200e64bec34a34201e47cbc697186ef1e45c38da.png) | ![ORC Torrent 客户端](https://static.pigsec.cn/wp-content/uploads/repos/cas/8f/8fa3bea56fb90120f83c831f71168d57018ef8cfcaf1182c3088a8a4f791ebe3.png) | ## 功能 | 领域 | 描述 | |------|-------------| | **Torrent 管理** | 通过 magnet 链接或 `.torrent` 文件添加;列出、启动、停止、移除、重新校验和宣告 torrent。 | | **文件控制** | 单文件优先级和内容视图;从现有下载恢复。 | | **Peers 和 trackers** | 检查已连接的 peers 和 tracker 状态。 | | **Torrent 搜索** | 用于用户配置的 RSS/Atom/JSON 源和 **Torznab** 提供商(兼容 Jackett / Prowlarr)的搜索页面。ORC 本身不自带搜索提供商,在你手动添加 torrent 之前,搜索结果仅供展示。 | | **监视文件夹** | 自动导入放入配置文件夹中的 `.torrent` 文件(防抖动、防重复)。 | | **做种控制** | 全局分享率和做种时间限制;当达到目标时,已完成的 torrent 会自动停止。 | | **带宽调度** | 常规和限速配置文件,支持免打扰时段计划。 | | **隐私仪表板** | 整合的 VPN/熔断开关风险卡片,支持一键开启 VPN 安全模式。 | | **网络页面** | 适配器列表、默认路由、DNS、VPN 信号和熔断开关强制执行状态。 | | **GitHub 自动更新** | 检查更新、后台下载,并在设置 → 更新中重启安装。 | | **VPN 传输暂停** | VPN 接口检测(例如 tun/wg);可选在 VPN 断开连接时关闭 ORC 传输/发现 socket。这并非操作系统级的防火墙。 | | **ORC Engine** | 桌面/Android 共享的传输门面 (`orc-engine`),具备功能 API、传统/现代 swarm 模式以及真实反映运行时状态的隐私状态。 | | **Peer 流量混淆** | 通过 `orc-mse` 在 TCP 上启用可选的 MSE/PE (RC4) — 支持 `off`、`prefer` 或 `require`。仅用于混淆;不提供匿名性。 | | **自适应调度 (测试版)** | 可选的 `orc-scheduler`,具备单 peer 的 RTT/吞吐量 pipeline、停滞块恢复和有界的 endgame。传统模式仍为默认。 | | **BEP 6 快速扩展** | `suggest piece`, `have all`/`none`, `reject request` 以及 `allowed fast`。 | | **网络姿态** | 策略、绑定接口和威胁预设。 | | **安全性** | 在受保护的路由上要求管理员 token 和精确的 Origin,路径限制,以及失败即拒绝的配置。 | | **桌面集成** | magnet 和 `.torrent` 文件关联;**自定义通知声音**(内置多种下载完成和熔断开关声音;可在设置中选择或使用你自己的声音)。 | ## 与众不同之处 除了标准的 BitTorrent 行为外,我们还添加了: | 功能 | 描述 | |---------|-------------| | **感知 VPN 的传输暂停** | 检测 VPN 接口,并可在 VPN 断开时关闭 ORC socket 并暂停传输。它不会阻止其他应用程序。 | | **GeoIP 集成** | Peer 和 tracker 数据可以通过国家信息 进行丰富,以增强可见性和策略管理。 | | **网络姿态和策略** | 用于控制允许网络的中心策略、绑定接口控制以及威胁预设,使行为符合你的设置。 | | **ORC Engine 边界** | 应用程序代码仅与 `orc-engine` 通信。私有且衍生自 rqbit 的后端、MSE 和调度程序可以不断演进,而无需更改 torrent UUID、REST 路由或现有的 `state/rqbit` 持久化目录。 | | **强化的 daemon API** | 精确的 Origin 白名单,每个受保护的路由(包括回环)都必需管理员 token,经过净化的错误信息,以及桌面端 token 与渲染进程的隔离。 | | **Daemon 与桌面端分离** | Rust daemon 运行 BitTorrent 会话和 REST API;Electron 应用管理 daemon 并代理经过身份验证的调用。这种分离保持了引擎的稳定性,并允许我们独立更新各个部分。 | | **Socket 级别的绑定接口** | 设置绑定接口后,引擎会将 TCP、uTP、DHT、tracker 和 LSD socket 绑定到该地址;严格模式拒绝使用通配符回退。 | | **策略持久化** | 熔断开关、网络姿态、做种、带宽和监视文件夹设置会通过 `config.json` 在 daemon 重启后继续生效。 | | **自定义通知声音** | 内置多种下载完成和熔断开关事件的声音;可在设置中选择或提供你自己的文件。可在桌面应用中针对每个事件启用/禁用。 | ## 速度对比 我们使用相同的官方 Ubuntu torrent,在同一台 Apple Silicon Mac 上将 ORC Torrent 与 qBittorrent、Transmission 和 Deluge 进行了对比。该受控测试套件使用了精确的 512 MiB 目标,每个客户端进行三次运行,随机执行顺序,全新的客户端状态,无限制的速率,并匹配 128 个 peer 的限制。 | 客户端 | 受控结果 | 达到 512 MiB 的中位数时间 | 中位数目标平均速度 | ORC 吞吐量优势 | |---|---:|---:|---:|---:| | **ORC Torrent 2.3.3** | **3/3 已完成** | **14.943 s** | **35.929 MB/s** | — | | qBittorrent 5.2.3 | 3/3 已完成 | 41.685 s | 12.879 MB/s | **2.790×** | | Transmission 4.1.3 | 3/3 已完成 | 268.130 s | 2.002 MB/s | **17.944×** | | Deluge 2.2.0 | 0/3 在截止时间前完成 | 每次 >600 s | 0.0205 MB/s 部分窗口中位数 | **>40.154× 下限** | ORC 达到 512 MiB 所需的时间比 **qBittorrent 少 64.15%**,比 **Transmission 少 94.43%**。它是在观察到 46 个 peer 行的中位数峰值下实现这一点的,而 qBittorrent 为 127 个,这表明在本次测试窗口中,有效 peer 的使用和请求调度比单纯的原始连接数更为重要。 这些 2026 年 8 月 2 日的结果仅描述了本次基准测试窗口的情况,并不保证适用于每个 torrent 或网络。Deluge 运行在 ARM64 Linux container 中,因为它当前原生的 macOS 设置不兼容。有关每次运行、早期的完整负载比较、方法论、环境、机器可读数据和局限性,请参阅 [完整的多客户端基准测试](docs/benchmarks/torrent-client-comparison-2026-08-02.md)。 ## 路线图 我们在此保留一份路线图,并随着进展进行更新。随着项目的发展,未来可能会添加更详细的、动态更新的路线图。 | 阶段 | 描述 | |-------|-------------| | **ORC Engine**(当前) | 掌控 `orc-engine` 背后的传输技术栈:在跨平台测试通过时推广现代 swarm 的 `auto` 模式,强化 MSE/PE 和 BEP 6,使自适应调度更加成熟,并保持真实的功能/隐私状态。参见 [ORC Engine](docs/ORC_ENGINE.md) 和 [自适应调度器](docs/ORC_ADAPTIVE_SCHEDULER.md)。 | | **跨平台优化**(进行中) | 签名的 Android/桌面端发布版本、CI 矩阵、务实的文档,以及 v2.4.0 / v2.5.0 功能推进后的可靠性提升。 | | **日常主力**(已发布,持续完善) | 监视文件夹、隐私仪表板、VPN 安全模式、做种/带宽自动化以及自动更新 —— 已在 **2.3.0** 中发布;持续的 UX 优化和强化。 | | **生态系统**(未来) | 集成和社区驱动的改进;仅提供通用搜索提供商接口(不包含盗版索引器)。 | 文档:[安装](docs/INSTALL.md) · [开发](docs/DEVELOPMENT.md) · [ORC Engine](docs/ORC_ENGINE.md) · [自适应调度器](docs/ORC_ADAPTIVE_SCHEDULER.md) · [代码库概览](docs/CODEBASE_OVERVIEW.md) · [隐私/VPN](docs/PRIVACY_VPN.md) · [已知限制](docs/KNOWN_LIMITATIONS.md) · [配置](docs/CONFIGURATION.md) · [测试清单](docs/TESTING_CHECKLIST.md) ## 架构 ORC Torrent 分为共享的 Rust 传输栈、daemon API 以及桌面/Android 前端: | 组件 | 位置 | 作用 | |-----------|----------|------| | **桌面应用** | `ui/desktop/` | Electron 主进程管理 daemon 生命周期并代理经过身份验证的 API 操作;React 渲染器永远不会接收 daemon token 或决定其权限。 | | **Android 应用** | `ui/android/` | 通过 JNI 在设备上运行 Rust 的 Capacitor shell;与桌面端采用相同的引擎契约。 | | **Daemon** | `crates/orc-daemon/` | 在 `127.0.0.1:8733` 上提供经过身份验证的 Axum REST API,具有精确的 Origin 白名单和默认拒绝的 middleware。 | | **核心** | `crates/orc-core/` | 共享状态(torrent、策略、熔断开关)、GeoIP、VPN 检测以及通过 ORC Engine 契约表达的逻辑。 | | **ORC Engine** | `crates/orc-engine/` | 公开的异步传输门面,用于处理生命周期、存储、持久化、网络策略、功能、隐私状态、peers、暂停和重新配置。应用 crate 不得直接依赖 `librqbit`。 | | **MSE / 调度器** | `crates/orc-mse/`, `crates/orc-scheduler/` | 由 ORC 拥有的独立 peer 流量混淆和自适应请求调度。 | | **私有后端** | `crates/librqbit-v9-patched/`, `crates/rqbit-v9/` | 衍生自 rqbit [v9.0.0-beta.2](https://github.com/ikatson/rqbit/releases/tag/v9.0.0-beta.2) 的实现 (Apache-2.0),保留在引擎门面之后。归属说明:[`crates/orc-engine/NOTICE.md`](crates/orc-engine/NOTICE.md)。 | **开发 ORC Engine。** 将 `orc-engine` 视为唯一的公开传输 API。相对于静默回退,更倾向于增量的功能和运行时真实的反映状态。在网络和调度的升级测试通过之前,传统模式将保持为安全的默认设置。本地检查: ``` cd crates cargo test -p orc-engine -p orc-mse -p orc-scheduler -p orc-core cargo run -p orc-scheduler --bin scheduler-bench --release ``` 详情:[docs/ORC_ENGINE.md](docs/ORC_ENGINE.md) · [docs/ORC_ADAPTIVE_SCHEDULER.md](docs/ORC_ADAPTIVE_SCHEDULER.md) · [docs/CODEBASE_OVERVIEW.md](docs/CODEBASE_OVERVIEW.md)。 ## 环境要求 - **Rust** (stable) — 用于构建 daemon - **Node.js** 20+ 和 **npm** — 用于构建和运行桌面端 UI - **平台**:ORC Torrent 运行于 **Android 10+**、**Windows**、**macOS** 和 **Linux**。有关各操作系统的逐步编译指南,请参见 [安装说明](Install-Instructions/)。 ## 从源码构建 有关详细的、特定于操作系统的步骤(先决条件、构建顺序、打包),请参阅 **[安装说明](Install-Instructions/)**(Windows、macOS、Linux)。 ### Windows:在仓库根目录下使用单条命令 安装 Rust 和 Node 后,在 **仓库根目录** 下运行: - **`build.cmd`** — 编译 daemon + UI(不生成安装程序)。 - **`build.cmd -Dist`** — 执行相同操作,随后运行 electron-builder(生成 NSIS 安装程序 + 便携版 zip)。 在 **PowerShell** 中,你可以使用带可选参数 **`-Dist`** 的 **`.\build.ps1`**。在 **命令提示符** 中,请使用 **`build.cmd`**,以免 `build.ps1` 在记事本中打开。参见 [Install-Instructions/Windows.md](Install-Instructions/Windows.md)。 ### 所有平台:在 `ui/desktop` 中使用 `npm` 快速概览: ### 1. 构建 daemon(可选) `npm run build`(第 3 步)已经会编译 daemon 并将其复制到 `ui/desktop/assets/bin/` 中。如果要从 **仓库根目录** 手动构建 Rust 二进制文件: ``` cd crates cargo build --release -p orc-daemon ``` 二进制文件位于 `crates/target/release/orc-daemon`(在 Windows 上为 `orc-daemon.exe`)。 ### 2. 为桌面应用安装 daemon(可选) 仅当你跳过了集成构建并手动构建了 daemon 时: - **Windows**: `copy crates\target\release\orc-daemon.exe ui\desktop\assets\bin\` - **Linux / macOS**: `cp crates/target/release/orc-daemon ui/desktop/assets/bin/` ### 3. 构建并打包桌面应用 ``` cd ui/desktop npm install npm run clean # optional: remove old compile + release artifacts npm run build npm run dist ``` - `npm run build` — 以发布模式构建 `orc-daemon`,将其复制到 `assets/bin/`,然后为主进程和预加载脚本运行 Vite 渲染器和 TypeScript 编译。输出位于 `ui/desktop/dist/` 下(主进程、预加载、渲染器);在你进行打包之前,这不是最终的安装程序。 - `npm run dist` — 运行 `build`,然后进行完整的 Electron 打包。安装程序和便携版压缩包会写入 `ui/desktop/release/`(例如 Windows NSIS + zip;Linux AppImage + `.deb`;macOS `.dmg` + `.zip` + `.pkg`)。 **通过 Docker 构建 Linux 版本**(在 macOS 或 Windows 主机上):在仓库根目录下运行 `./scripts/build-linux-docker.sh`。 **Android 构建:** 安装 Java 21、Android SDK 36、NDK `28.2.13676358`、Rust targets `aarch64-linux-android` 和 `x86_64-linux-android`,以及 `cargo-ndk`。然后在 `ui/desktop` 和 `ui/android` 中运行 `npm ci`,接着在 `ui/android` 中运行 `npm run sync:web`,并在 `ui/android/android` 中运行 `./gradlew assembleDebug`。 **发布版本:** 推送一个 `v*` 标签(例如 `v2.5.0`)或手动运行 [构建发布版本](.github/workflows/build-release.yml) 工作流。CI 会发布已签名的 Windows、macOS 和 Linux 软件包(校验和签名使用 `RELEASE_GPG_PRIVATE_KEY` 和 `RELEASE_GPG_PASSPHRASE`)。生产环境的 Android APK **在本地签名**,所使用的 keystore 绝不会进入仓库或 CI,然后会被上传到同一个 GitHub release 中 —— 参见 [docs/ANDROID.md](docs/ANDROID.md)。机密信息绝不会提交到代码库。 要在不打包的情况下以开发模式运行: ``` cd ui/desktop npm run dev ``` ## 配置 ### Daemon | 项目 | 环境变量 | 描述 | |------|----------------------|-------------| | 绑定地址 | `DAEMON_BIND` | 默认:`127.0.0.1:8733`。拒绝明文非回环绑定。 | | 管理 token | `DAEMON_ADMIN_TOKEN` | 必需,包括回环连接在内;至少 32 个字符。桌面端在每次 daemon 启动时都会轮换一个 48 字符的 token。 | | 允许的 Origin | `DAEMON_ALLOWED_ORIGIN` | 精确匹配的受保护路由 Origin。桌面端使用 `orc://desktop`;拒绝不透明、缺失和通配符的 Origin。 | | 下载目录 | `ORC_DOWNLOAD_DIR` | 默认:在 Windows、macOS 和 Linux 上为 **Downloads/ORC Torrent**。 | 除 `GET /health` 和 `GET /version` 外,每个路由都需要提供精确配置的 Origin 和 `x-admin-token`,包括读取操作和回环请求。浏览器预检被限制为精确的 Origin。在实现独立的 TLS/范围限定 token 监听器之前,远程 HTTP 监听处于禁用状态。 **手动检查:** 一个带有 `Origin: orc://desktop` 但无 token 的受保护请求会返回 `401`;不相关的 Web Origin 会返回 `403` 或无法通过 CORS 预检。 ### 搜索 - ORC Torrent 本身不附带搜索提供商。在使用搜索之前,请在搜索设置中添加并启用你自己的提供商。 - 提供商可以使用开放式内容 JSON 格式、标准 RSS/Atom torrent 订阅源或兼容 Torznab 的 endpoint。 - **Torznab** 提供商(JackettProwlarr 或兼容程序)可以通过安全存储的 API 密钥和可选的本地/私有 endpoint 授权进行添加。参见 [docs/SEARCH_PROVIDERS.md](docs/SEARCH_PROVIDERS.md)。 - 在用户手动点击 **添加** 之前,搜索结果仅供展示;客户端绝不会根据搜索结果自动下载。 - UI 提醒:*仅下载你有合法权利下载的 torrent。* **配置文件**(例如监听端口): - **Windows**: `%APPDATA%\OrcTorrent\config.json` - **macOS**: `~/Library/Application Support/OrcTorrent/config.json` - **Linux**: `~/.config/OrcTorrent/config.json` ### 桌面端 桌面 UI 通过 daemon API 读写设置(包括通知和安全);适用上述的 daemon 配置。 ### Windows 发行版代码签名(可选) `ui/desktop/package.json` 中的打包配置将 `forceCodeSigning` 和 `signAndEditExecutable` 设置为关闭状态,以便在没有证书的情况下也能在本地运行 `npm run dist`。要在 CI 中生成签名的安装程序,请配置标准的代码签名 PFX:添加仓库机密 `CSC_LINK`(PFX 的文件路径或 URL)和 `CSC_KEY_PASSWORD`,在使用带有证书的托管 runner 时,将 `.github/workflows/build-release.yml` 中的 `CSC_IDENTITY_AUTO_DISCOVERY` 设置为 `true`,并将 `package.json` 中的 Windows `forceCodeSigning` / `signAndEditExecutable` 字段设置为 `true`,以用于应强制要求签名的发布构建版本。 ## 使用方法 1. 从 [GitHub Releases](https://github.com/The-animus-project/Orc-Torrent/releases) [安装](#installation) 应用(便携版压缩包或安装程序)。 2. 通过拖拽、文件选择器或关联的 magnet 链接添加 torrent。 3. 使用 torrent 列表和检查器查看概览、文件、peers、trackers 和传输情况。 4. 在设置中配置 VPN、熔断开关、网络姿态、监视文件夹、做种和带宽。 5. 启用 **设置 → 更新** 以自动从 GitHub 接收新版本。 ## 开发 我们欢迎各种贡献。代码库的组织方式使得 daemon、ORC Engine 以及桌面/Android shell 能够被独立开发。 - **ORC Engine**:推荐在 `crates/orc-engine/`(或在需要时配合 `orc-mse` / `orc-scheduler`)进行修改。不要在 `orc-core`、`orc-daemon` 或 Android 中添加直接的 `librqbit` 依赖。参见 [docs/ORC_ENGINE.md](docs/ORC_ENGINE.md)。 - **Rust**:在 `crates/` 目录下,运行 `cargo build --release -p orc-daemon`;运行针对引擎的测试可使用 `cargo test -p orc-engine -p orc-mse -p orc-scheduler -p orc-core`。 - **桌面端**:在 `ui/desktop/` 目录下,运行 `npm run dev` 进行开发;运行 `npm run build` 后再运行 `npm run dist` 生成完整的软件包。 - **Android**:开发者构建和架构记录在 [docs/ANDROID.md](docs/ANDROID.md) 中;用户安装指南位于 [Install-Instructions/Android.md](Install-Instructions/Android.md)。 - **CI**:[.github/workflows/build-release.yml](.github/workflows/build-release.yml) 中的工作流会在 `workflow_dispatch` 或 `v*` 标签上运行,编译 Android(未签名)并测试 API 29/33/34/36,构建 macOS、Linux 和 Windows 软件包,对桌面发布资产进行 PGP 签名,并将其发布在 GitHub Releases 上。已签名的 Android APK 在本地生成,并单独附加到该发布版本中。 如果你不确定从何开始,请查看 [路线图](#roadmap) 和 open issues —— ORC Engine 的工作是当前的重点。 ## 更新日志 我们保留了记录重要变更的更新日志。**最近 5 次更新:** | 版本 | 亮点 | |---------|-------------| | **2.5.1** | 紧急修复:在旧版搜索提供商配置上启动 daemon 时不再会失败即拒绝。 | | **2.5.0** | ORC Engine 边界,强化的 localhost API,可选的 MSE/PE,BEP 6 快速扩展,以及自适应请求调度 beta 版。 | | **2.4.0** | 首个 Android 10+ 构建版本:签名 APK,设备端 Rust 引擎,移动端 UI,SAF 存储,后台传输,Wi-Fi 优先策略,持久化恢复,以及感知 VPN 的熔断开关。 | | **2.3.4** | Torznab 提供商,受保护的 API 密钥存储,搜索去重和 UI 优化,Intel macOS 软件包,以及为每个可分发版本提供 PGP 签名。 | | **2.3.3** | v2.3.2 之后的补丁版本号更新(即安全更新版本之后的下一个有效 semver)。 | | **2.3.2** | Dependabot 安全补丁(npm + Rust openssl/webpki/serde_with/rand),Animus 启动/闪屏优化,受 daemon 控制的启动流程。 | 完整历史记录:**[CHANGELOG.md](CHANGELOG.md)**。 ## 作者 - **[Vurzumm](https://github.com/Animus-exe)** — [GitHub](https://github.com/Animus-exe) · [X @Itsvurzum](https://x.com/Itsvurzum) ``` /\_/\ ( ( ^.^ ) _) \"/ ( ( | | ) (__d b__) ``` ## 许可证 本项目基于 **GNU Affero General Public License v3.0 (AGPL-3.0)** 授权。 版权所有 (C) 2026 ORC Torrent 和 The ANIMUS PROJECT。 有关完整文本,请参阅 [LICENSE](LICENSE) 文件,或访问 。 ![ORC Torrent](https://static.pigsec.cn/wp-content/uploads/repos/cas/0e/0e42ceac2b3fd7f05b3619a9c01bfe15684f170971dba9e89be91f96ffb376d2.png)
标签:BitTorrent, Electron, React, Rust, Syscalls, 下载工具, 可视化界面, 安卓, 网络流量审计, 通知系统