# [![](_docs/img/banner.svg)](https://gopeed.com) [![Test Status](https://github.com/GopeedLab/gopeed/workflows/test/badge.svg)](https://github.com/GopeedLab/gopeed/actions?query=workflow%3Atest) [![Codecov](https://codecov.io/gh/GopeedLab/gopeed/branch/main/graph/badge.svg)](https://codecov.io/gh/GopeedLab/gopeed) [![Release](https://img.shields.io/github/release/GopeedLab/gopeed.svg)](https://github.com/GopeedLab/gopeed/releases) [![Download](https://img.shields.io/github/downloads/GopeedLab/gopeed/total.svg)](https://github.com/GopeedLab/gopeed/releases) [![Donate](https://img.shields.io/badge/%24-donate-ff69b4.svg)](https://gopeed.com/docs/donate) [![WeChat](https://img.shields.io/badge/WeChat%20Official%20Account-07C160?logo=wechat&logoColor=white)](https://raw.githubusercontent.com/GopeedLab/gopeed/main/_docs/img/weixin.png) [![Discord](https://img.shields.io/discord/1037992631881449472?label=Discord&logo=discord&style=social)](https://discord.gg/ZUJqJrwCGB) GopeedLab%2Fgopeed | Trendshift [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](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, ED2K) 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://gopeed.com/docs/dev-api) or installation and development of [extensions](https://gopeed.com/docs/dev-extension). Visit ✈ [Official Website](https://gopeed.com) | 📖 [Official Docs](https://gopeed.com/docs) ## ⬇️ Download
🪟 Windows EXE amd64 📥
arm64 📥
Portable amd64 📥
arm64 📥
🍎 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 📥
More about installation, please refer to [Installation](https://gopeed.com/docs/install) ### 🛠️ Command tool use `go install`: ```bash go install github.com/GopeedLab/gopeed/cmd/gopeed@latest ``` ## 🔌 Browser Extension Gopeed also provides a browser extension to take over browser downloads, supporting browsers such as Chrome, Edge, Firefox, etc., please refer to: [https://github.com/GopeedLab/browser-extension](https://github.com/GopeedLab/browser-extension) ## 📱 WeChat Official Account Follow our WeChat Official Account to get the latest updates and news. ## 💝 Donate If you like this project, please consider [donating](https://gopeed.com/docs/donate) to support the development of this project, thank you! ## 🖼️ Showcase ![](_docs/img/ui-demo.png) ## 👨‍💻 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.25+ 2. Flutter 3.38+ ### 📋 Clone ```bash git clone git@github.com: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 -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 ```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 ### 🏢 JetBrains [![goland](_docs/img/goland.svg)](https://www.jetbrains.com/?from=gopeed) ## 📄 License [GPLv3](LICENSE)