PiecewiseHow a peer to peer transfer actually works

qBittorrent, Transmission and Deluge compared

The clients compared

Several machines side by side, which is how the clients get compared.

qBittorrent and Deluge run the same engine, libtorrent, so on the same swarm and the same connection they move data at much the same rate, and what separates them is shape rather than speed: qBittorrent is one program that does everything itself, Deluge is a background service with a detachable interface and a plugin system.

Transmission is the third of the group and the only one carrying its own engine. All three are free and open source, none of them shows advertising, and choosing between them is a question about how you want to run a client, not about which one is fastest.

The axes on which these three clients differ

These three clients differ on six axes, and every honest comparison reduces to them.

AxisqBittorrentTransmissionDeluge
Enginelibtorrentlibtransmission, its ownlibtorrent
FootprintA desktop toolkitNo toolkit, no runtime, fits firmwareA Python runtime too
Default shapeOne window holding the engineDaemon plus a separate interfaceDaemon plus a separate interface
Remote controlBuilt in web interface and remote APIWeb interface, command line remote, RPCWeb interface, console interface, thin client
Extending itNothing to add, features are in the coreNo extension mechanism at allPlugin system written in Python
Where it runsWindows, macOS, Linux, BSD, headless servermacOS and Linux, plus routers and NAS firmwareWindows, macOS, Linux, BSD, headless server

Engine: two of the three share one

The engine decides protocol behavior, and two of the three share it. qBittorrent and Deluge both sit on libtorrent, so the distributed hash table, peer exchange, local peer discovery, protocol encryption, the microtransport protocol and the rarest first piece picker are the same code in both. Transmission implements all of that itself in libtransmission, maintained by the same project that maintains its interfaces and shared with no other client.

The practical effect of the shared engine is that a comparison claiming qBittorrent is faster than Deluge, or the reverse, is describing defaults and disk handling rather than the protocol. The practical effect of Transmission's separate engine is size: no desktop toolkit, no scripting runtime, small enough to live in router firmware.

Shape: a window, a service, or both

Shape decides where a client can live, and it is the difference people notice first. qBittorrent's desktop build keeps the engine in the same process as the window, so closing the window stops the transfers, and the project ships a separate headless build for anyone who wants otherwise. Transmission and Deluge invert that: the daemon holds every transfer and the interface attaches and detaches at will, so a transfer survives logging out, and one machine can be driven from another.

Deluge blurs the line usefully. Its desktop interface starts a private daemon by default and behaves like an ordinary application, then switches to thin client mode and connects to a daemon elsewhere when you want it to.

Extending them: plugins against a fixed core

Extensibility separates the three completely. Deluge treats it as the design: labels, watched folders, bandwidth scheduling, running a command on completion, blocklists and even the web interface arrive as plugins you switch on individually, and anyone who writes Python can add another. qBittorrent has no plugin layer because it puts a comparable feature set in the core: torrent creation, sequential download, IP filtering, categories and tags with save paths, per torrent limits and scheduled alternative speed limits are all present in a default installation. Transmission has neither, and says so: the fixed feature set is the product.

Where each one runs, including the phone question

qBittorrent and Deluge run on Windows, macOS, Linux and BSD. Transmission's own builds are for macOS and Linux, and whether a Windows build exists for a given release is a question to settle at the project. All three have a headless mode suitable for a server, and Transmission goes further down the scale than the other two, shipping in OpenWrt and in the firmware of many NAS devices, and having been the default client in several Linux distributions.

Android is the exception, and the answer is short: none of these three projects publishes a phone client of its own. What exists for Android are separate programs, and the sensible ones act as remote controls for a Transmission or Deluge daemon running on a machine that stays switched on. Anything offered as one of these three, from outside a project that does not publish one, is a repackaged build, and Is it safe? explains why that specific route is the actual risk rather than the protocol.

Speed, and why the fastest client is the wrong question

Speed is not an axis these three differ on in any measurable way, because none of them is the limiting factor. A transfer's rate is set by how many peers hold the pieces you still need, how much upload those peers have spare, your own connection, and whether your listening port is reachable. A client that reports firewalled is receiving no incoming connections and can only reach peers it connects out to, which costs far more than any preference. The swarm covers that, and How a transfer works covers the sequence underneath it.

The same applies to qBittorrent set against uTorrent. The difference there is not throughput: uTorrent is closed source, made by a company, and runs its own engine. qBittorrent is free and open source with none of that. Both move data at the rate the swarm allows.

What each one is best at

There is no winner here, and any comparison that names one is choosing for you. Each of these three is best at a different thing.

  • qBittorrent is best for one computer, one user and no assembly: the widest feature set in a default installation, a familiar window, and a web interface if you later want one. It is the page to read if you want the field narrowed to a single program.
  • Transmission is best where resources are scarce or there is no screen: a router, a NAS box, a small server, or a Mac where you want the client to be invisible. It is also the one to choose if configuring software is not how you want to spend the evening.
  • Deluge is best where one always on machine serves several people or several devices, and where you want to add exactly the capabilities you need through plugins and no more.

Read those three sentences again with your own situation in mind and the choice usually makes itself. The clients sets out what a client is doing in all three cases.

Where to go next