简介
Gopeed(全称 Go Speed)是一款由Golang
+ Flutter
开发的高速下载器,支持(HTTP、BitTorrent、磁力链接)协议,并支持所有平台。除了基本的下载功能外,Gopeed还是一个高度可定制的下载器,可以通过集成API或安装和开发扩展来实现更多功能。
下载
平台 | 包类型 | 下载链接 |
---|---|---|
Windows | EXE 安装程序 | 链接 |
便携版 ZIP | 链接 | |
MacOS | DMG 安装程序 | 链接 |
Linux | Flathub | 链接 |
SNAP | 链接 | |
DEB | 链接 | |
AppImage | 链接 | |
Android | APK | 链接 |
iOS | IPA | 链接 |
Web | 链接 | |
Docker | 链接 |
更多关于安装的信息,请参考安装指南
命令行工具
使用 go install
:
go install github.com/GopeedLab/gopeed/cmd/gopeed@latest
浏览器扩展
Gopeed 还提供了一个浏览器扩展来接管浏览器下载,支持 Chrome、Edge、Firefox 等浏览器,请参考:https://github.com/GopeedLab/browser-extension
捐赠
如果您喜欢这个项目,请考虑捐赠来支持这个项目的开发,谢谢!
展示
开发
这个项目分为两个部分,前端使用 flutter
,后端使用 Golang
,两端通过 http
协议通信。在 unix 系统上使用 unix socket
,在 windows 系统上使用 tcp
协议。
前端代码位于
ui/flutter
目录。
环境
- Golang 1.21+
- Flutter 3.16+
克隆
git clone git@github.com:GopeedLab/gopeed.git
贡献
请参考 CONTRIBUTING.md
构建
桌面端
首先,您需要根据官方 Flutter 桌面网站文档 配置环境,然后您需要确保 cgo 环境已正确设置。有关设置 cgo 环境的详细说明,请参考网上可用的相关资源。
命令:
- windows
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/windows/libgopeed.dll github.com/GopeedLab/gopeed/bind/desktop
cd ui/flutter
flutter build windows
- macos
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/macos/Frameworks/libgopeed.dylib github.com/GopeedLab/gopeed/bind/desktop
cd ui/flutter
flutter build macos
- linux
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/linux/bundle/lib/libgopeed.so github.com/GopeedLab/gopeed/bind/desktop
cd ui/flutter
flutter build linux
移动端
与之前一样,你还需要准备cgo
环境,然后安装gomobile
:
go install golang.org/x/mobile/cmd/gomobile@latest
go get golang.org/x/mobile/bind
gomobile init
命令:
- android
gomobile bind -tags nosqlite -ldflags="-w -s" -o ui/flutter/android/app/libs/libgopeed.aar -target=android -androidapi 21 -javapkg="com.gopeed" github.com/GopeedLab/gopeed/bind/mobile
cd ui/flutter
flutter build apk
- ios
gomobile bind -tags nosqlite -ldflags="-w -s" -o ui/flutter/ios/Frameworks/Libgopeed.xcframework -target=ios github.com/GopeedLab/gopeed/bind/mobile
cd ui/flutter
flutter build ios --no-codesign
网页版
命令:
cd 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/web