mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 15:49:49 +00:00
212 lines
6.8 KiB
Markdown
212 lines
6.8 KiB
Markdown
[](https://github.com/GopeedLab/gopeed/actions?query=workflow%3Atest)
|
|
[](https://codecov.io/gh/GopeedLab/gopeed)
|
|
[](https://github.com/GopeedLab/gopeed/releases)
|
|
[](https://github.com/GopeedLab/gopeed/releases)
|
|
[](https://docs.gopeed.com/donate.html)
|
|
[](https://discord.gg/ZUJqJrwCGB)
|
|
|
|

|
|
|
|
[](https://ko-fi.com/R6R6IJGN6)
|
|
|
|
[English](/README.md) | [中文](/README_zh-CN.md) | [日本語](/README_ja-JP.md) | [正體中文](/README_zh-TW.md) | [Tiếng Việt](/README_vi-VN.md)
|
|
|
|
## Introduction
|
|
|
|
Gopeed (full name Go Speed), a high-speed downloader developed by `Golang` + `Flutter`, supports (HTTP, BitTorrent, Magnet) protocol, and supports all platforms. In addition to basic download functions, Gopeed is also a highly customizable downloader that supports implementing more features through integration with [APIs](https://docs.gopeed.com/dev-api.html) or installation and development of [extensions](https://docs.gopeed.com/dev-extension.html).
|
|
|
|
Visit ✈ [Official Website](https://gopeed.com) | 📖 [Official Docs](https://docs.gopeed.com)
|
|
|
|
## Download
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Platform</th>
|
|
<th>Package Type</th>
|
|
<th>Download Link</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan=2>Windows</td>
|
|
<td><code>EXE Installer</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-windows-amd64.zip">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>Portable ZIP</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-windows-amd64-portable.zip">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>MacOS</td>
|
|
<td><code>DMG Installer</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-macos.dmg">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan=4>Linux</td>
|
|
<td><code>Flathub</code></td>
|
|
<td><a href="https://flathub.org/apps/com.gopeed.Gopeed">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>SNAP</code></td>
|
|
<td><a href="https://snapcraft.io/gopeed">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>DEB</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-linux.deb">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>AppImage</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-linux-amd64.AppImage">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Android</td>
|
|
<td><code>APK</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-android.apk">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>iOS</td>
|
|
<td><code>IPA</code></td>
|
|
<td><a href="https://gopeed.com/api/download?tpl=Gopeed-$version-ios.ipa">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Web</td>
|
|
<td></td>
|
|
<td><a href="https://github.com/GopeedLab/gopeed/releases/latest">Link</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Docker</td>
|
|
<td></td>
|
|
<td><a href="https://hub.docker.com/r/liwei2633/gopeed">Link</a></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
More about installation, please refer to [Installation](https://docs.gopeed.com/install.html)
|
|
|
|
### Command tool
|
|
|
|
use `go install`:
|
|
|
|
```bash
|
|
go install github.com/GopeedLab/gopeed/cmd/gopeed@latest
|
|
```
|
|
|
|
## Donate
|
|
|
|
If you like this project, please consider [donating](https://docs.gopeed.com/donate.html) to support the development of this project, thank you!
|
|
|
|
## Showcase
|
|
|
|

|
|
|
|
## Development
|
|
|
|
This project is divided into two parts, the front end uses `flutter`, the back end uses `Golang`, and the two sides communicate through the `http` protocol. On the unix system, `unix socket` is used, and on the windows system, `tcp` protocol is used.
|
|
|
|
> The front code is located in the `ui/flutter` directory.
|
|
|
|
### Environment
|
|
|
|
1. Golang 1.21+
|
|
2. Flutter 3.16+
|
|
|
|
### Clone
|
|
|
|
```bash
|
|
git clone [email protected]:GopeedLab/gopeed.git
|
|
```
|
|
|
|
### Contributing
|
|
|
|
Please refer to [CONTRIBUTING.md](/CONTRIBUTING.md)
|
|
|
|
### Build
|
|
|
|
#### Desktop
|
|
|
|
First, you need to configure the environment according to the official [Flutter desktop website documention](https://docs.flutter.dev/development/platform-integration/desktop), then you will need to ensure the cgo environment is set up accordingly. For detailed instructions on setting up the cgo environment, please refer to relevant resources available online.
|
|
|
|
command:
|
|
|
|
- windows
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
#### Mobile
|
|
|
|
Same as before, you also need to prepare the `cgo` environment, and then install `gomobile`:
|
|
|
|
```bash
|
|
go install golang.org/x/mobile/cmd/gomobile@latest
|
|
go get golang.org/x/mobile/bind
|
|
gomobile init
|
|
```
|
|
|
|
command:
|
|
|
|
- android
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
command:
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
## Credits
|
|
|
|
### Contributors
|
|
|
|
<a href="https://github.com/GopeedLab/gopeed/graphs/contributors">
|
|
<img src="https://contrib.rocks/image?repo=GopeedLab/gopeed" />
|
|
</a>
|
|
|
|
### JetBrains
|
|
|
|
[](https://www.jetbrains.com/?from=gopeed)
|
|
|
|
## License
|
|
|
|
[GPLv3](LICENSE)
|