GopeedLab

    GopeedLab/gopeed

    #292 this week

    A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.

    android
    mobile
    networking
    ios
    bittorrent
    cross-platform
    debian
    downloader
    flutter
    Go
    GPL-3.0
    25.0K stars
    1.7K forks
    25.0K GitHub watchers
    Updated 6/27/2026
    View on GitHub

    Backblaze Generative Media Hackathon

    Build the next generation of AI media apps with Genblaze, stored on Backblaze B2. $10,000 in prizes.

    Enter the hackathon

    Loading star history...

    Use Cases & Benefits

    • Provides a fast, modern, cross-platform download manager supporting HTTP, BitTorrent, Magnet, and ed2k protocols.
    • Offers high customizability with API integration and extension support, built using Golang and Flutter for performance and UI consistency.
    • Use for managing large file downloads across multiple protocols on desktop and mobile platforms seamlessly.
    • Use for integrating custom download features or automation via its API and extension development capabilities.
    • Use for deploying a unified download solution on diverse operating systems including Windows, macOS, Linux, Android, and iOS.

    About gopeed

    Test Status Codecov Release Download Donate Discord

    GopeedLab%2Fgopeed | Trendshift

    ko-fi

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

    🚀 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 or installation and development of extensions.

    Visit ✈ Official Website | 📖 Official Docs

    ⬇️ Download

    🪟 WindowsEXEamd64📥
    Portableamd64📥
    🍎 MacOSDMGuniversal📥
    amd64📥
    arm64📥
    🐧 LinuxFlathubamd64📥
    SNAPamd64📥
    DEBamd64📥
    arm64📥
    AppImageamd64📥
    arm64📥
    🤖 AndroidAPKuniversal📥
    armeabi-v7a📥
    arm64-v8a📥
    x86_64📥
    📱 iOSIPAuniversal📥
    🐳 Docker-universal📥
    💾 QnapQPKGamd64📥
    arm64📥
    🌐 WebWindowsamd64📥
    arm64📥
    386📥
    MacOSamd64📥
    arm64📥
    Linuxamd64📥
    arm64📥
    386📥

    More about installation, please refer to Installation

    🛠️ Command tool

    use go install:

    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

    💝 Donate

    If you like this project, please consider donating 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.23+
    2. Flutter 3.24+

    📋 Clone

    git clone [email protected]:GopeedLab/gopeed.git
    

    🤝 Contributing

    Please refer to CONTRIBUTING.md

    🏗️ Build

    Desktop

    First, you need to configure the environment according to the official Flutter desktop website documention, 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
    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
    

    Mobile

    Same as before, you also need to prepare the cgo environment, and then install gomobile:

    go install golang.org/x/mobile/cmd/gomobile@latest
    go get golang.org/x/mobile/bind
    gomobile init
    

    command:

    • 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

    command:

    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

    📄 License

    GPLv3

    Discover Repositories

    Search across tracked repositories by name or description