Gopeed(全稱 Go Speed),是一款使用Golang
+Flutter
編寫的高速下載軟體,支援(HTTP、BitTorrent、Magnet)協定,同時支援所有的平台。
運行平台 | 安裝包類型 | 下載鏈接 |
---|---|---|
Windows | EXE Installer |
前往 |
Portable ZIP |
前往 | |
MacOS | DMG Installer |
前往 |
Linux | SNAP |
前往 |
DEB |
前往 | |
AppImage |
前往 | |
Android | APK |
前往 |
iOS | IPA |
前往 |
Web | 前往 | |
Docker | 前往 |
更多關於安裝的內容請參考安裝文檔
使用go install
安裝:
go install github.com/GopeedLab/gopeed/cmd/gopeed@latest
如果你認為該項目對你有所幫助,請考慮贊助以支持該項目的持續發展,謝謝!
該項目分為前端與後端,前端使用flutter
編寫,後端使用Golang
編寫,兩邊通過http
協定進行通訊,在 unix 系統下,則使用unix socket
,在 windows 系統下,則使用tcp
協定。
前端代碼位於
ui/flutter
目錄內。
- Golang 1.21+
- Flutter 3.16+
git clone git@github.com:GopeedLab/gopeed.git
請參考協助指南
首先需要按照flutter desktop 官方文檔配置開發環境,並準備好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 19 -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
該軟體遵循 GPLv3 。