ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Gopeed 2.0 Beta 全解析:Go + Flutter 跨平台下载器的功能、AI 与构建指南

Gopeed 2.0 Beta 全解析:Go + Flutter 跨平台下载器的功能、AI 与构建指南 Gopeed 2.0 Beta 全解析Go Flutter 跨平台下载器的功能、AI 与构建指南【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeedGopeedGo Speed的缩写是一款使用 Go 与 Flutter 开发的开源高速下载管理器支持 HTTP、HTTPS、BitTorrent、Magnet 与 ed2k 协议可运行于桌面、移动端与 Web。本文基于仓库 README_ja-JP.md 展开结合仓库源码深入讲解其核心功能、MCP 驱动的 AI 集成、安装方式以及从源码构建桌面/移动/Web 客户端的完整流程读完即可上手使用并参与构建。 Gopeed 是什么Gopeed 的目标是一个界面管理所有下载资源。它以 Go 为核心引擎、Flutter 为前端实现了一套轻量的原生体验主界面由 Flutter 原生绘制不依赖 Electron也不是 WebView 外壳因而包体积与运行时开销更低、响应更快见 README_ja-JP.md 的主な機能。前端源码位于ui/flutter目录Go 后端源码位于仓库根目录的pkg、internal与cmd等包中。✨ 核心功能一览⚡ 高速下载多任务并发、HTTP 多连接分段传输、BitTorrent P2P 下载最大化利用带宽。从源码看HTTP 协议的并发连接数可通过任务配置指定参见 internal/protocol/http/config.go 中的Connections字段。 多协议支持HTTP、HTTPS、BitTorrent、Magnet、ed2k 在单一界面统一管理。pkg/mcpserver/server.go的downloadRequest明确声明支持 HTTP、HTTPS、magnet、torrent 与 ED2K 链接。 完整 BT 能力DHT 节点发现、uTP 传输、Web Seed、文件选择下载、Tracker 管理、Peer/分片统计以及按分享率或时间控制的做种策略。对应的ListenPort、Trackers、SeedKeep、SeedRatio、SeedTime等配置定义在 internal/protocol/bt/config.go。 任务管理暂停、继续、重试、批量操作、搜索、状态筛选、分类以及启动后恢复任务。任务状态机定义在 pkg/base/constants.go包括ready、running、pause、wait、error、done六种状态。 轻量原生体验Flutter 原生渲染主界面无 Electron、无 WebView 外壳。 跨平台Windows、macOS、Linux、Android、iOS、Web以及 Docker、QNAP 部署方式。 主题定制跟随系统、浅色/深色模式外加 8 种强调色。 响应式 UI任务列表、导航、设置与详情页适配手机、平板与可缩放桌面窗口。️ 20 界面语言日语、英语、简繁中文、韩语等。 浏览器集成从 Chrome、Edge、Firefox 等浏览器将下载任务直接发送到 Gopeed。 JavaScript 扩展可添加视频站点、AI 模型中心、云存储等下载源。扩展引擎的实现位于 pkg/download/extension_engine.go扩展包通过 pkg/download/extension.go 管理。 AI 集成通过 MCP 接口连接兼容的 AI Agent用自然语言创建、查询和管理下载任务。 开放接口REST API、CLI、带认证的 Web UI、Webhook、下载完成后的脚本。️ 内建实用功能自定义 Header/User-Agent、代理、GitHub 镜像、通知、自动解压。解压能力由 pkg/download/extract.go 及 zip/7z/rar 等实现pkg/download/extract_zip.go、pkg/download/extract_7z.go、pkg/download/extract_rar.go支撑。 AI 集成通过 MCP 用自然语言管理下载Gopeed 2.0 将 MCPModel Context Protocol服务器内置于下载器进程AI Agent 可通过标准工具调用接口接管下载任务。典型的使用方式是对 Agent 说一句最新の Gopeed Windows クライアントをダウンロードして请下载最新的 Gopeed Windows 客户端Agent 会依次调用下面的工具完成解析资源 → 创建任务 → 监控进度的完整流程。Tool说明resolve_task解析下载 URL 或 URI在创建任务前返回资源元信息与文件列表。create_task通过已解析的资源 ID 或直接的下载请求创建并启动任务。list_tasks列出任务可按 ID 或状态筛选。get_task获取单个任务的请求、资源、选项与当前进度。get_task_status获取单个任务的轻量运行状态与按文件的进度。get_task_stats获取协议特有统计如 HTTP 连接数或 BitTorrent 的 Peer 与做种数据。pause_task暂停任务。continue_task继续暂停或失败的任务。delete_task删除任务可选同时删除已下载文件。MCP 服务的源码实现MCP 服务定义在 pkg/mcpserver/server.goNewServer创建一个名为gopeed的 MCP 服务器并在serverInstructions中注入使用指引告诉 Agent 何时用create_task、何时先用resolve_task、URL 缺失时应向用户索取而非臆造registerTools注册上述全部 9 个工具并声明了工具语义标注resolve_task等只读操作标记ReadOnlyHintdelete_task标记DestructiveHint且幂等工具的输入 Schema 通过 google/jsonschema-go 从 Go 结构体自动生成。其中downloadRequest用oneOf联合 HTTP 与 BitTorrent 两种协议请求结构httpRequestExtra的 method/header/body、btRequestExtra的 trackers避免部分 MCP 客户端将Extra误读为布尔值list_tasks的筛选状态必须是 pkg/base/constants.go 中六种合法状态之一parseStatuses会校验非法值工具操作最终落到downloader.Resolve、downloader.Create、downloader.CreateDirect、downloader.GetTasksByFilter、downloader.Pause/Continue/Delete等方法上实现见 pkg/download/downloader.go。在 Web 服务中MCP 端点默认关闭需通过--mcp-enable显式开启见 cmd/web/flags.go。⬇️ 安装 Gopeed 2.0.0 BetaGopeed 2.0.0 当前处于公开 Beta 阶段引入了全新界面、桌面与移动端通过 FFI 直连 Go 核心的原生通信架构、更统一的跨平台体验、增强的任务管理、更灵活的 API以及基于 MCP 的 AI Agent 集成。部分功能可能尚不完整或不够稳定欢迎试用并反馈问题。下载 Gopeed 2.0.0 Beta 1当功能与稳定性达到正式版标准后将发布 2.0.0 正式版。Beta 用户届时可直接升级到正式版现有稳定版用户不会被自动切换到 Beta 通道。稳定版官方站点下载GitHub Releases️ 命令行工具使用go install安装 CLIgo install github.com/GopeedLab/gopeed/cmd/gopeedlatestCLI 的入口在 cmd/gopeed/main.go参数定义在 cmd/gopeed/flags.go位置参数下载 URL支持 HTTP/HTTPS、bt.torrent文件路径、magnet:?xturn:btih:...磁力链接-CHTTP 并发连接数默认16-D保存目录默认当前工作目录。CLI 通过 pkg/download 的Boot().URL(...).Listener(...).Create(base.Options{...})链式 API 创建任务并实时打印带进度条的下载状态printProgress按已下载字节数与总大小计算百分比。 浏览器扩展从 Chrome、Edge、Firefox 等浏览器将下载任务直接发送到 Gopeed使用独立的浏览器扩展项目 GopeedLab/browser-extension。‍ 开发从源码构建项目分两部分前端使用 Flutter后端使用 Golang两者通过 HTTP 协议通信——类 Unix 系统使用 Unix SocketWindows 使用 TCP见 README_ja-JP.md 的開発一节。 环境要求Go 1.25仓库 go.mod 声明go 1.25.4Flutter 3.41 克隆仓库git clone gitgithub.com:GopeedLab/gopeed.git 参与贡献请参阅 CONTRIBUTING_ja-JP.md。️ 构建桌面版首先按照 Flutter 官方桌面文档配置环境并准备可用的 cgo 工具链。各平台命令如下Windowsgo build -tags nosqlite -ldflags-w -s -buildmodec-shared -o ui/flutter/windows/libgopeed.dll github.com/GopeedLab/gopeed/bind/desktop cd ui/flutter flutter build windowsmacOSgo build -tags nosqlite -ldflags-w -s -buildmodec-shared -o ui/flutter/macos/Frameworks/libgopeed.dylib github.com/GopeedLab/gopeed/bind/desktop cd ui/flutter flutter build macosLinuxgo build -tags nosqlite -ldflags-w -s -buildmodec-shared -o ui/flutter/linux/bundle/lib/libgopeed.so github.com/GopeedLab/gopeed/bind/desktop cd ui/flutter flutter build linux桌面端的 Go 侧入口是 bind/desktop/main.go它以 c-shared 库形式导出Start、Stop、Invoke、SubscribeTaskEvents等 C ABI 函数Flutter 端通过 FFI 直接调用这正是 2.0 原生通信架构的落点。-tags nosqlite用于剔除 SQLite 依赖-ldflags-w -s用于减小库体积。️ 构建移动版移动端同样需要 cgo 工具链并额外安装gomobilego install golang.org/x/mobile/cmd/gomobilelatest go get golang.org/x/mobile/bind gomobile initAndroidgomobile bind -tags nosqlite -ldflags-w -s -checklinkname0 -o ui/flutter/android/app/libs/libgopeed.aar -targetandroid -androidapi 21 -javapkgcom.gopeed github.com/GopeedLab/gopeed/bind/mobile cd ui/flutter flutter build apkiOSgomobile bind -tags nosqlite -ldflags-w -s -o ui/flutter/ios/Frameworks/Libgopeed.xcframework -targetios github.com/GopeedLab/gopeed/bind/mobile cd ui/flutter flutter build ios --no-codesign移动端入口见 bind/mobile/main.goAndroid 构建目标 API 级别为 21Java 包名为com.gopeed。️ 构建 Webcd ui/flutter flutter build web cd ../../ rm -rf cmd/web/dist cp -r ui/flutter/build/web cmd/web/dist go build -tags nosqlite,web -ldflags-s -w -o bin/ github.com/GopeedLab/gopeed/cmd/webWeb 版由 cmd/web/main.go 承载Flutter 产物通过//go:embed dist/*直接嵌入 Go 二进制构建时需-tags web。运行时可配置的参数见 cmd/web/flags.go包括-A/--address绑定地址默认0.0.0.0-P/--port监听端口默认9999-u/--usernameWeb 认证用户名默认gopeed-p/--passwordWeb 认证密码未设置时启用 Web 认证-T/--api-tokenAPI Token启用 Web 认证后调用 HTTP API 时必填--mcp-enable启用 MCP 端点-d/--storage-dir存储目录--white-download-dirs下载白名单目录逗号分隔-c/--config配置文件路径默认./config.json。配置加载顺序为命令行参数 → 配置文件 → 环境变量前缀GOPEED_如GOPEED_PORT、GOPEED_MCP_ENABLE→ 非默认命令行参数覆盖 → 默认值兜底。许可协议Gopeed 采用 GPLv3 开源协议。【免费下载链接】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),仅供参考
返回列表