Gopeed (正式名 Go Speed) は Golang
+ Flutter
によって開発された高速ダウンローダーで、(HTTP、BitTorrent、Magnet) プロトコルをサポートし、すべてのプラットフォームをサポートします。基本的なダウンロード機能に加え、APIsとの連動や拡張機能のインストール・開発による追加機能にも対応した、カスタマイズ性の高いダウンローダーです。
Platform | Package Type | Download Link |
---|---|---|
Windows | EXE Installer |
Link |
Portable ZIP |
Link | |
MacOS | DMG Installer |
Link |
Linux | SNAP |
Link |
DEB |
Link | |
AppImage |
Link | |
Android | APK |
Link |
iOS | IPA |
Link |
Web | Link | |
Docker | Link |
インストールについての詳細は、インストールを参照してください。
もしこのプロジェクトがお気に召しましたら、このプロジェクトの発展を支援するために寄付をご検討ください!
このプロジェクトは二つの部分に分かれており、フロントエンドでは flutter
を、バックエンドでは Golang
を使用し、両者は http
プロトコルで通信する。ユニックスシステムでは unix socket
を、ウィンドウズシステムでは tcp
プロトコルを使用します。
フロントコードは
ui/flutter
ディレクトリにあります。
- Go 言語 1.21+
- Flutter 3.16+
git clone git@github.com:GopeedLab/gopeed.git
CONTRIBUTING.md をご参照ください
まず、flutter デスクトップ公式サイトドキュメントに従って環境を設定し、自分で検索できる 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