Convert Figma logo to code with AI

agalwood logoMotrix

A full-featured download manager.

44,897
4,485
44,897
727

Top Related Projects

Official Transmission BitTorrent client repository

qBittorrent BitTorrent client

35,422

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

⚡️ Streaming torrent client for the web

an efficient feature complete C++ bittorrent implementation

1,538

Deluge BitTorrent client - Git mirror, PRs only

Quick Overview

Motrix is a full-featured download manager that supports multiple protocols and BitTorrent. It provides a clean, modern interface and is available for Windows, macOS, and Linux. Motrix aims to be a powerful and user-friendly alternative to traditional download managers.

Pros

  • Cross-platform compatibility (Windows, macOS, Linux)
  • Supports multiple protocols including HTTP, FTP, BitTorrent, and Magnet links
  • User-friendly interface with a modern design
  • Actively maintained and regularly updated

Cons

  • Some users report occasional stability issues
  • Limited advanced features compared to some specialized torrent clients
  • Relatively large application size for a download manager
  • May consume more system resources than lighter alternatives

Getting Started

To get started with Motrix:

  1. Visit the Motrix releases page on GitHub.
  2. Download the appropriate version for your operating system.
  3. Install the application following the standard procedure for your OS.
  4. Launch Motrix and start adding download tasks by clicking the "+" button or pasting links.

For developers who want to contribute or run from source:

# Clone the repository
git clone https://github.com/agalwood/Motrix.git

# Navigate to the project directory
cd Motrix

# Install dependencies
npm install

# Run the app in development mode
npm run dev

For more detailed instructions and documentation, refer to the Motrix GitHub repository.

Competitor Comparisons

Official Transmission BitTorrent client repository

Pros of Transmission

  • Lightweight and efficient, consuming fewer system resources
  • Mature project with a long history of development and stability
  • Supports a wide range of platforms, including desktop and server environments

Cons of Transmission

  • Less modern user interface compared to Motrix
  • Fewer built-in features for managing downloads from various sources
  • Limited support for streaming media files directly from the application

Code Comparison

Transmission (C):

static void
tr_peerMgrGotBadPiece(tr_torrent * tor, tr_piece_index_t pieceIndex)
{
    assert(tr_isTorrent(tor));
    assert(pieceIndex < tor->info.pieceCount);

    tr_peerMgrLock(tor);

Motrix (JavaScript):

handleToggleSpeedLimit = () => {
  const { speedLimit } = this.state
  this.setState({
    speedLimit: {
      ...speedLimit,
      enabled: !speedLimit.enabled
    }
  })
}

While both projects serve as download managers, Transmission focuses on a lightweight, efficient BitTorrent client written in C, while Motrix offers a more feature-rich, modern interface built with web technologies. Transmission's codebase reflects its focus on performance and low-level operations, while Motrix emphasizes user experience and cross-platform compatibility through Electron.

qBittorrent BitTorrent client

Pros of qBittorrent

  • More mature and established project with a larger user base
  • Supports a wider range of torrent-related features
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons of qBittorrent

  • Less modern and intuitive user interface
  • Slower development cycle and less frequent updates
  • Limited support for direct downloads from HTTP/FTP sources

Code Comparison

qBittorrent (C++):

void TorrentHandle::addTrackers(const QList<TrackerEntry> &trackers)
{
    if (trackers.isEmpty()) return;

    const libtorrent::torrent_handle nativeHandle = m_nativeHandle;
    for (const TrackerEntry &tracker : trackers)
        nativeHandle.add_tracker(tracker.nativeEntry());
}

Motrix (JavaScript):

addTracker (tracker) {
  const { id } = this.task
  if (!tracker) {
    return
  }

  engine.addTracker(id, tracker)
}

While both projects handle adding trackers, qBittorrent's implementation is in C++ and uses libtorrent, whereas Motrix uses JavaScript and a custom engine. qBittorrent's approach allows for adding multiple trackers at once, while Motrix adds them individually.

35,422

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

Pros of aria2

  • Lightweight and resource-efficient command-line tool
  • Supports a wide range of protocols (HTTP, HTTPS, FTP, BitTorrent, Metalink)
  • Highly customizable with extensive configuration options

Cons of aria2

  • Lacks a graphical user interface, which may be less user-friendly for some
  • Requires command-line knowledge for setup and usage
  • Limited built-in features for torrent management compared to Motrix

Code Comparison

aria2:

aria2c -s16 -x16 -k1M https://example.com/large-file.zip

Motrix:

// No direct code comparison available as Motrix is a GUI application
// Motrix uses aria2 as its core downloading engine

Motrix provides a user-friendly graphical interface for aria2, making it more accessible to users who prefer a visual approach to download management. While aria2 offers more flexibility and control through its command-line interface, Motrix simplifies the process for less technical users. Both projects serve different user needs, with aria2 focusing on power and customization, and Motrix emphasizing ease of use and visual management of downloads.

⚡️ Streaming torrent client for the web

Pros of WebTorrent

  • Browser-based torrent client, enabling streaming directly in web applications
  • Supports WebRTC for peer-to-peer communication without plugins
  • Lightweight and easy to integrate into existing web projects

Cons of WebTorrent

  • Limited to web environments, not suitable for desktop or mobile applications
  • May have performance limitations compared to native torrent clients
  • Requires modern browser support for full functionality

Code Comparison

WebTorrent:

const WebTorrent = require('webtorrent')
const client = new WebTorrent()

client.add(torrentId, function (torrent) {
  torrent.files.forEach(function (file) {
    file.appendTo('body')
  })
})

Motrix:

import { app } from 'electron'
import { join } from 'path'
import { Engine } from '@motrix/engine'

const engine = new Engine({
  systemConfig: app.getPath('userData')
})

Key Differences

  • WebTorrent focuses on web-based torrent streaming, while Motrix is a full-featured desktop download manager
  • Motrix offers a more comprehensive set of features, including multi-protocol support and a user-friendly GUI
  • WebTorrent is better suited for web developers looking to integrate torrent functionality into their applications
  • Motrix provides a more traditional download management experience for end-users

an efficient feature complete C++ bittorrent implementation

Pros of libtorrent

  • More comprehensive and feature-rich BitTorrent implementation
  • Highly efficient and optimized C++ library
  • Extensive documentation and active development community

Cons of libtorrent

  • Requires more technical expertise to integrate and use
  • Not a standalone application, needs to be implemented in other software
  • Steeper learning curve for developers new to BitTorrent protocols

Code Comparison

libtorrent (C++):

#include <libtorrent/session.hpp>
#include <libtorrent/add_torrent_params.hpp>
#include <libtorrent/torrent_handle.hpp>

lt::session ses;
lt::add_torrent_params p;
p.save_path = "./";
p.ti = std::make_shared<lt::torrent_info>("test.torrent");
lt::torrent_handle h = ses.add_torrent(p);

Motrix (JavaScript):

import { aria2 } from '@motrix/aria2'

const client = new aria2()
client.open()
  .then(() => {
    return client.addUri(['http://example.com/file.zip'])
  })
  .then((gid) => {
    console.log(`Download started. GID: ${gid}`)
  })

Summary

libtorrent is a powerful, low-level BitTorrent library offering extensive features and optimizations, while Motrix provides a user-friendly, cross-platform download manager with a graphical interface. libtorrent is better suited for developers building custom BitTorrent applications, whereas Motrix is ideal for end-users seeking a ready-to-use download solution.

1,538

Deluge BitTorrent client - Git mirror, PRs only

Pros of Deluge

  • More mature and established project with a larger user base
  • Extensive plugin system for customization and additional features
  • Better support for advanced torrent features like RSS feeds and scheduling

Cons of Deluge

  • Less modern and intuitive user interface
  • Slower development cycle and less frequent updates
  • Limited built-in support for downloading from HTTP/FTP sources

Code Comparison

Deluge (Python):

class Core(component.Component):
    def __init__(self, config):
        component.Component.__init__(self, "Core")
        self.config = config

Motrix (JavaScript):

class Core extends EventEmitter {
  constructor (options = {}) {
    super()
    this.options = options
  }
}

Both projects use object-oriented programming, but Deluge is written in Python while Motrix uses JavaScript. Deluge's core component inherits from a custom Component class, while Motrix extends the EventEmitter class for event handling. The initialization process is similar, with both accepting configuration options.

Motrix offers a more modern, Electron-based interface with support for various protocols, including BitTorrent and HTTP/FTP. It has a sleeker design and more frequent updates. However, Deluge provides more advanced torrent-specific features and a robust plugin ecosystem, making it a better choice for users who prioritize customization and advanced torrent management capabilities.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Motrix

Motrix App Icon

A full-featured download manager

GitHub release Build/release Total Downloads Support Platforms

English | 简体中文

Motrix is a full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, etc.

Motrix has a clean and easy to use interface. I hope you will like it 👻.

✈️ Official Website | 📖 Manual

💽 Installation

Download from GitHub Releases and install it.

Windows

It is recommended to install Motrix using the installation package (Motrix-Setup-x.y.z.exe) to ensure a complete experience, such as associating torrent files, capturing magnet links, etc.

If you use package management tools to manage applications on Windows, such as Chocolatey, scoop. You can use them to install Motrix.

Chocolatey

Thanks to @Yato for continuing to maintain the Motrix Chocolatey package. To install motrix, run the following command from the command line or from PowerShell:

# Install
choco install motrix

# Upgrade
choco upgrade motrix

scoop

If you prefer the portable version, you can use scoop (need Windows 7+) to install Motrix.

scoop bucket add extras
scoop install motrix

macOS

The macOS users can install Motrix using brew, thanks to PR of @Mitscherlich.

brew update && brew install motrix

Auto Update

Since Motrix v1.8.0 and later versions changed the App BundleID ( net.agalwood.Motrix => app.motrix.native ), the automatic update of Motrix v1.6.11 will fail. Motrix Install Assistant will help you install the latest Motrix application.

Motrix Install Assistant Icon

Linux

You can download the AppImage (for all Linux distributions) or snap to install Motrix, see GitHub/release for more Linux installation package formats.

Motrix may need to run with sudo for the first time in Linux because there is no permission to create the download session file (/var/cache/aria2.session).

If you want to build from source code, please read the Build section.

AppImage

The latest version of Motrix AppImage requires you to manually perform desktop integration. Please check the documentation of AppImageLauncher .

Desktop Integration Since electron-builder 21 desktop integration is not a part of produced AppImage file. AppImageLauncher is the recommended way to integrate AppImages.

Deepin 20 Beta users failed to install Motrix, please follow the steps below:

Open the Terminal, paste and run the following command to install Motrix again.

sudo apt --fix-broken install

Snap

Motrix has been listed on Snapcraft , Ubuntu users recommend downloading from the Snap Store.

Tips for v1.5.10

The tray may not display the indicator normally, which makes it inconvenient to exit the application.

Please unchecked Preferences--Basic Settings--Hide App Menu (Windows & Linux Only), click Save & Apply. Then click "Exit" in the File menu to exit the application.

Please update to v1.5.12 and above, you can use the keyboard shortcut Ctrl + q to quickly exit the application.

AUR

For Arch Linux users, Motrix is available in aur, thanks to the maintainer @weearc.

Run the following command to install:

yay -S motrix

Flatpak

Thanks to the PR of @proletarius101, Motrix has been listed Flathub, Linux users who like the Flatpak can try it.

# Install
flatpak install flathub net.agalwood.Motrix

# Run
flatpak run net.agalwood.Motrix

✨ Features

  • 🕹 Simple and clear user interface
  • 🦄 Supports BitTorrent & Magnet
  • ☑️ BitTorrent selective download
  • 📡 Update tracker list every day automatically
  • 🔌 UPnP & NAT-PMP Port Mapping
  • 🎛 Up to 10 concurrent download tasks
  • 🚀 Supports 64 threads in a single task
  • 🚥 Supports speed limit
  • 🕶 Mock User-Agent
  • 🔔 Download completed Notification
  • 💻 Ready for Touch Bar (Mac only)
  • 🤖 Resident system tray for quick operation
  • 📟 Tray speed meter displays real-time speed (Mac only)
  • 🌑 Dark mode
  • 🗑 Delete related files when removing tasks (optional)
  • 🌍 I18n, View supported languages.
  • 🛠 More features in development

🖥 User Interface

motrix-screenshot-task-en.png

⌨️ Development

Clone Code

git clone git@github.com:agalwood/Motrix.git

Install Dependencies

cd Motrix
yarn

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again

Electron failed to install correctly, please refer to https://github.com/electron/electron/issues/8466#issuecomment-571425574

Dev Mode

yarn run dev

Build Release

yarn run build

Build for Apple Silicon

yarn run build:applesilicon

After building, the application will be found in the project's release directory.

🛠 Technology Stack

☑️ TODO

Development Roadmap see: Trello

🤝 Contribute PRs Welcome

If you are interested in participating in joint development, PR and Forks are welcome!

🌍 Internationalization

Translations into versions for other languages are welcome 🧐! Please read the translation guide before starting translations.

KeyNameStatus
arArabic✔️ @hadialqattan, @AhmedElTabarani
bgБългарският език✔️ @null-none
caCatalà✔️ @marcizhu
deDeutsch✔️ @Schloemicher
elΕλληνικά✔️ @Likecinema
en-USEnglish✔️
esEspañol✔️ @Chofito
faفارسی✔️ @Nima-Ra
frFrançais✔️ @gpatarin
huHungarian✔️ @zalnaRs
idIndonesia✔️ @aarestu
itItaliano✔️ @blackcat-917
ja日本語✔️ @hbkrkzk
ko한국어✔️ @KOZ39
nbNorsk Bokmål✔️ @rubjo
nlNederlands✔️ @nickbouwhuis
plPolski✔️ @KanarekLife
pt-BRPortuguese (Brazil)✔️ @andrenoberto
roRomână✔️ @alyn3d
ruРусский✔️ @bladeaweb
thแบบไทย✔️ @nxanywhere
trTürkçe✔️ @abdullah
ukУкраїнська✔️ @bladeaweb
viTiếng Việt✔️ @duythanhvn
zh-CN简体中文✔️
zh-TW繁體中文✔️ @Yukaii @5idereal

📜 License

MIT Copyright (c) 2018-present Dr_rOot