MCPcopy
hub / github.com/GopeedLab/gopeed

github.com/GopeedLab/gopeed @v1.9.3 sqlite

repository ↗ · DeepWiki ↗ · release v1.9.3 ↗
1,147 symbols 5,268 edges 117 files 273 documented · 24%
README

Test Status Codecov Release Download Donate WeChat Discord

GopeedLab%2Fgopeed | Trendshift

ko-fi

English | 中文 | 日本語 | 正體中文 | Tiếng Việt

🚀 はじめに

Gopeed (正式名 Go Speed) は Golang + Flutter によって開発された高速ダウンローダーで、(HTTP、BitTorrent、Magnet、ED2K) プロトコルをサポートし、すべてのプラットフォームをサポートします。基本的なダウンロード機能に加え、APIsとの連動や拡張機能のインストール・開発による追加機能にも対応した、カスタマイズ性の高いダウンローダーです。

見て下さい ✈ 公式ウェブサイト | 📖 開発ドキュメント

⬇️ インストール

🪟 Windows EXE amd64 📥
Portable amd64 📥
🍎 MacOS DMG universal 📥
amd64 📥
arm64 📥
🐧 Linux Flathub amd64 📥
SNAP amd64 📥
DEB amd64 📥
arm64 📥
AppImage amd64 📥
arm64 📥
🤖 Android APK universal 📥
armeabi-v7a 📥
arm64-v8a 📥
x86_64 📥
📱 iOS IPA universal 📥
🐳 Docker - universal 📥
💾 Qnap QPKG amd64 📥
arm64 📥
🌐 Web Windows amd64 📥
arm64 📥
386 📥
MacOS amd64 📥
arm64 📥
Linux amd64 📥
arm64 📥
386 📥

インストールについての詳細は、インストールを参照してください。

🛠️ コマンドツール

📱 WeChat 公式アカウント

公式アカウントをフォローして、最新のアップデートやニュースを入手してください。

💝 寄付

もしこのプロジェクトがお気に召しましたら、このプロジェクトの発展を支援するために寄付をご検討ください!

🖼️ ショーケース

👨‍💻 開発

このプロジェクトは二つの部分に分かれており、フロントエンドでは flutter を、バックエンドでは Golang を使用し、両者は http プロトコルで通信する。ユニックスシステムでは unix socket を、ウィンドウズシステムでは tcp プロトコルを使用します。

フロントコードは ui/flutter ディレクトリにあります。

🌍 環境

  1. Go 言語 1.24+
  2. Flutter 3.38+

📋 クローン

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 -checklinkname=0" -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

Web

コマンド:

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

❤️ 感謝

コントリビューター

JetBrains

goland

ライセンス

GPLv3

Extension points exported contracts — how you extend this code

Fetcher (Interface)
Fetcher defines the interface for a download protocol. Each download task will have a corresponding Fetcher instance for [3 …
internal/fetcher/fetcher.go
Storage (Interface)
(no doc) [2 implementers]
pkg/download/storage.go
FileController (Interface)
(no doc) [1 implementers]
internal/controller/controller.go
FetcherManager (Interface)
FetcherManager manage and control the fetcher [3 implementers]
internal/fetcher/fetcher.go
ExtractProgressCallback (FuncType)
ExtractProgressCallback is called to report extraction progress
pkg/download/extract.go
StatefulFetcherManager (Interface)
StatefulFetcherManager is an optional extension for protocols that keep shared client state outside individual task fetc [1 …
internal/fetcher/fetcher.go
Listener (FuncType)
(no doc)
pkg/download/downloader.go
ProtocolStateStore (Interface)
ProtocolStateStore persists shared protocol state for a fetcher manager. Downloader provides the concrete storage backen [1 …
internal/fetcher/fetcher.go

Core symbols most depended-on inside this repo

Error
called by 173
pkg/download/extension.go
Close
called by 124
pkg/download/storage.go
Run
called by 112
internal/protocol/bt/dns_cache_resolver.go
Close
called by 72
internal/fetcher/fetcher.go
WriteJson
called by 62
pkg/rest/server.go
Stat
called by 58
pkg/rest/server.go
Set
called by 57
pkg/download/extension.go
Wait
called by 53
internal/fetcher/fetcher.go

Shape

Function 618
Method 375
Struct 127
TypeAlias 18
Interface 7
FuncType 2

Languages

Go98%
TypeScript2%

Modules by API surface

pkg/download/extract_test.go82 symbols
pkg/download/downloader.go75 symbols
pkg/download/extension.go64 symbols
pkg/download/downloader_test.go55 symbols
internal/protocol/http/fetcher.go44 symbols
internal/fetcher/fetcher.go43 symbols
internal/protocol/http/fetcher_test.go42 symbols
pkg/rest/server_test.go39 symbols
internal/protocol/ed2k/fetcher.go35 symbols
internal/protocol/bt/fetcher.go35 symbols
pkg/download/webhook_test.go32 symbols
pkg/rest/api.go31 symbols

Dependencies from manifests, versioned

dario.cat/mergov1.0.0 · 1×
github.com/Microsoft/go-winiov0.6.1 · 1×
github.com/ProtonMail/go-cryptov0.0.0-2023071712142 · 1×
github.com/STARRY-S/zipv0.2.3 · 1×
github.com/acomagu/bufpipev1.0.4 · 1×
github.com/alecthomas/atomicv0.1.0-alpha2 · 1×
github.com/anacrolix/btreev0.1.1 · 1×
github.com/anacrolix/chansyncv0.7.0 · 1×
github.com/anacrolix/dht/v2v2.23.0 · 1×
github.com/anacrolix/envpprofv1.5.0 · 1×
github.com/anacrolix/genericsv0.2.0 · 1×

For agents

$ claude mcp add gopeed \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact