5分钟上手的4协议下载管理:Gopeed 全平台下载器快速指南
【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed
Gopeed 是 Golang + Flutter 构建的下载器,支持 HTTP、BitTorrent、Magnet、ed2k 协议,覆盖 Windows、macOS、Linux、Android、iOS,另提供 Docker 与 Web 部署。
📐 架构与平台支持一览
Gopeed 把下载引擎和界面放在同一个工程里:后端是 Golang 实现的下载引擎加 REST API,前端是位于ui/flutter的 Flutter 应用,桌面端通过 cgo 直接链接 Go 核心,移动端通过 gomobile 打包,纯 Web 形态则走cmd/web的 HTTP 服务。核心依赖包括 BitTorrent 引擎 anacrolix/torrent、HTTP 客户端 imroc/req、ed2k 协议库 goed2k,以及用于运行扩展的 goja JS 引擎,任务元数据由 bbolt 与 SQLite 持久化。
| 平台 | 发布形态 | 架构 |
|---|---|---|
| Windows | EXE / 便携版 | amd64、arm64 |
| macOS | DMG | universal、amd64、arm64 |
| Linux | DEB、AppImage、Flatpak、Snap | amd64、arm64 |
| Android | APK | 全架构 |
| iOS | IPA | universal |
| Docker / Web | 容器镜像 | 监听 9999 端口 |
🚀 安装指南:命令行、GUI 与 Docker 三种方式
命令行一键安装
已有 Go 环境的开发者最短路径是一条go install,装完后终端里直接获得gopeed命令:
go install github.com/GopeedLab/gopeed/cmd/gopeed@latest图形界面安装
GUI 版本按平台分发安装包:Windows 用 EXE 或便携版,macOS 用 DMG,Linux 可选 DEB 或 AppImage,移动端为 APK 与 IPA。桌面版启动后即为完整的 Flutter 界面,无需额外组件。
Docker 部署
服务器或 NAS 场景下,容器镜像内置 Web 界面,映射 9999 端口与下载目录即可:
docker run -d -p 9999:9999 -v ~/gopeed/Downloads:/app/Downloads liwei2633/gopeed📡 协议支持与能力矩阵
| 协议 | 能力 | 备注 |
|---|---|---|
| HTTP(S) | 多连接并发、断点续传、自定义 UA | 连接数默认 16,可用-C调整 |
| BitTorrent | .torrent文件与 Magnet 下载、DHT、做种控制 | 基于 anacrolix/torrent |
| Magnet | 免文件直下、自动解析资源信息 | 与 BT 共用做种策略 |
| ed2k | 电驴链接下载 | 基于 goed2k |
协议识别不需要手动指定:每个协议在注册时声明一组SchemeFilter,按 URL 前缀(如magnet:)、文件扩展名(如.torrent)或 base64 data URI 三种方式匹配请求,匹配逻辑见 internal/fetcher/fetcher.go。
💻 实战:命令行下载、浏览器扩展与任务队列
命令行下载
URL 作为位置参数传入,-C指定并发连接数,-D指定保存目录:
gopeed https://example.com/archive.zip gopeed -C 32 -D ~/Downloads "magnet:?xt=urn:btih:..."下载过程在终端输出一行式进度,含百分比、实时速度与总大小。
浏览器扩展集成
Gopeed 提供配套浏览器扩展,支持 Chrome、Edge、Firefox:安装扩展、开启接管开关后,浏览器中的下载链接会直接交给 Gopeed 客户端处理,不再走浏览器自身的下载队列。
队列与任务管理
Web 界面和 REST API 支持批量创建任务(CreateTaskBatch),也可按状态筛选后批量暂停、恢复或删除,接口实现见 pkg/rest/api.go。
⚙️ 进阶:扩展开发与远程管理配置
Gopeed 的扩展是标准 JS 应用,由manifest.json声明身份与设置项,运行时挂接任务生命周期事件(on_start、on_done、on_error),并可用 storage、file、stream、xhr 等 API 与引擎交互,测试样例见pkg/download/testdata/extensions/,引擎实现位于 pkg/download/extension_engine.go。扩展可通过 git 仓库地址或本地目录安装。
高频配置项集中在三个地方:HTTP 协议的connections(并发连接数)与userAgent,BT 协议的trackers(追踪器列表)、seedRatio与seedTime(做种策略)。远程管理即启动 Web 服务:
gopeed -A 0.0.0.0 -P 9999 -u admin -p secret服务支持-T配置 API Token 供 HTTP API 鉴权,参数也可写入config.json或以GOPEED_前缀环境变量注入,适合部署为无人值守的远程下载节点。
🤝 社区参与:贡献方式与功能方向
参与路径有三条:按 CONTRIBUTING.md 提交 Issue 与 PR,参与代码修复和新功能;补充五种语言的文档与翻译;开发 JS 扩展并在社区分享。近期迭代方向包括:扩展引擎完善、应用自动更新、Webhook 任务通知、ed2k 能力增强。
Gopeed 是覆盖桌面与移动端的开源多协议下载器。可到仓库点 Star,或提 Issue 反馈问题。
【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考