PiecewiseHow a peer to peer transfer actually works

qBittorrent: what it is and where the official builds come from

qBittorrent

A machine left to work on its own.

qBittorrent is a free and open source torrent client, written in C++ on the Qt toolkit, that runs the libtorrent engine underneath a desktop window and a built in web interface.

It is developed in the open by a volunteer project, its full source is published on GitHub alongside the release builds, and it carries no advertising, no bundled offers and no paid tier of any kind.

What qBittorrent is and who makes it

qBittorrent is a client program that speaks the BitTorrent protocol, which means it does the four things any client does: it reads a torrent file or a magnet link, finds peers, trades pieces and verifies every one of them against its hash before writing it to disk. How a transfer works covers that sequence. What distinguishes qBittorrent from its two closest siblings is the combination it offers in one program: a full desktop window, a web interface, a documented remote interface and a separate headless build, all maintained by the same project under a free software license.

The project is a community effort rather than a company product. There is no vendor behind it, which is also why there is no commercial version to be upsold to.

What engine qBittorrent runs on

qBittorrent runs on libtorrent, the C++ implementation of the BitTorrent protocol that Deluge also uses. Every protocol level behavior you see comes from there: the distributed hash table, peer exchange, local peer discovery, protocol encryption, the microtransport protocol that keeps a transfer from saturating your line, and the piece picker that asks for rare pieces first.

Two consequences follow. On the same swarm and the same connection, qBittorrent and Deluge move data at much the same rate, because the same code is doing the moving. And a qBittorrent release that updates its bundled libtorrent can change protocol behavior without a single visible change in the window.

How qBittorrent is driven

qBittorrent is driven in three ways, and all three ship from the same project. The desktop window is the one most people install on Windows, macOS or Linux, and it holds the engine in the same process, so closing it stops the transfers. The web interface is served by that same program on a port you enable, so a machine in another room can drive it from a browser. The headless build, packaged under a name that marks it as the version with no graphical interface, runs as a background process on a server with no desktop at all and is driven only through the web interface and the remote API.

What qBittorrent does that Transmission and Deluge do not

qBittorrent puts a large feature set in the core program instead of behind plugins or a separate daemon. It creates torrents itself. It supports sequential download and first and last piece priority. It carries an IP filter, categories and tags with a save path per category, per torrent speed limits, and a schedule that switches to alternative speed limits at set hours. All of that is present in a default installation.

Against Transmission, the difference is deliberate scope: Transmission keeps a small, fixed feature set and hides most knobs, while qBittorrent exposes them. Against uTorrent, the difference is the license and the funding. uTorrent is closed source and made by a company, so how the program is paid for is that company's decision and can change from one release to the next. qBittorrent's window has nothing in it that is trying to sell you something, and its source can be read by anybody. Those two properties, and not throughput, are the difference.

What qBittorrent leaves out on purpose

qBittorrent leaves out every revenue mechanism. There is no advertising pane, no sponsored entry in the transfer list, no offer bundled into the installer, no telemetry sold on, and no premium edition holding features back. It also leaves out any attempt to be a privacy service: it will not hide your address from the swarm, because the protocol needs peers to reach each other, and no setting inside the client changes that. The swarm explains what the other peers can see.

Where an official qBittorrent build comes from

An official build comes from the qBittorrent project itself, or from your operating system's own package repository. The project publishes installers for Windows and macOS and the complete source, and it hosts the code and the releases on GitHub. On Linux, distributions such as Debian, Ubuntu and Fedora compile their own package from that source, which is a second legitimate chain.

Three signals separate a real build from a repackaged copy.

  • Origin. The file came from the project's own release listing or from your package manager, not from a general download portal.
  • Checksum. The published checksum or signature matches the file you actually have.
  • A clean installer. Setup offers no toolbar, no search bar, no browser and no cleanup utility along the way.

Do not rely on the icon. The qBittorrent logo is trivially copied into a repackaged installer, so a familiar icon proves nothing and the checksum proves everything.

Whether qBittorrent is safe to install

Yes, the program itself is. It is open source, its code is public and continuously read, and the builds the project publishes contain nothing but the client. The risks people describe under this question are two different things, and neither is the program. The first is the repackaged installer, which is why the previous section exists. The second is what a swarm hands you: the client verifies that the pieces match the hashes in the metadata, which proves the data arrived intact, not that the data is harmless. Is it safe? deals with that distinction in full.

Why a qBittorrent transfer runs slowly

A slow transfer in qBittorrent is almost always a swarm or a reachability problem rather than a settings problem. Four causes account for most of it: too few seeders holding the pieces you still need, a listening port that no incoming connection can reach so the client reports firewalled, a connection limit or queue setting throttling the client below what the swarm could give, and a disk that cannot write fast enough, which shows as a full cache and a client that keeps pausing to catch up. Adjusting settings helps only in the third and fourth cases, and The clients has the wider picture of where a client's control ends.

Where to go next