7 of the best Linux BitTorrent clients
13th Sep 2010 | 09:45
But which is the best Linux BitTorrent client of all?
Deluge, KTorrent, Monsoon
BitTorrent is a protocol for P2P file sharing that's often the fastest way to get hold of the latest distros. It's expanded far beyond the original Python implementation and now incorporates all sorts of extra technologies, such as Distributed Hash Tables, Peer Exchange and more.
A modern BitTorrent client has to be able to cope with encryption, working behind NAT routers (preferably with UPnP) and a host of other acronymic terms. We also expect them to be easy to use, yet full of features and customisable parts.
There's a war being waged against torrent clients by ISPs that (understandably) want to use traffic shaping technology to de-prioritise the torrent traffic in favour of Facebook, so technologies such as encryption and randomised port access become useful if you don't want to get capped.
In this Roundup, we 've only considered clients that run natively on Linux. The reference BitTorrent client is still going, but the last Linux release was so long ago that we haven't bothered including it.
There are some active and up-to-date clients, such as Miro, that are tuned to particular activities. These are really good at what they do, but not for general use, so they've been excluded too.
Finally, there are plenty of commendable command line torrent clients such as rtorrent and aria2, but they make terrible screenshots and we have to draw the line somewhere, so these aren't represented either.
How we tested...
The clients were tested on a Core 2 Duo 2.5GHz desktop with 4GB memory running Fedora 13. Apart from normal usage, the main test for speed, CPU and memory use was performed with four test torrent files of 256MB each. The clients were restricted to downloading three files simultaneously.
The tracker was run on the same machine to eliminate any variance in network latency, and the torrents were seeded by three machines on a local 10/100 network using a variety of clients (Transmission, uTorrent, Vuze).
Using lots of memory or CPU cores is often intentional to speed up downloads. The timed downloads were averaged over three runs, but are guidelines only.
This client can be run in a variety of modes. Written in Python, it makes use of GTK for the desktop interface, but isn't really a Gnome app as such – it looks just as at home on KDE or whatever your desktop of choice is.
The layout of the main screen is pretty straightforward – a tree on the left enables you to select an item of interest (say, your current downloads), which are then displayed in the main panel. The status bar along the bottom gives readouts on various things, such as current speeds and connected or discovered peers.
Deluge also supports the System Tray, and displays the transfer speeds as well as options to control uploads and downloads and add a torrent without troubling yourself with the main interface – a nice touch not found in many clients.
The core functionality of a basic client is handled by the main app, but for what many people would consider essential features you may have to delve into the various plugins available – for blocklists or scheduling, for example. There are quite a few of these and they can be installed directly through Deluge without much fuss.
There's no option to launch a file directly from the download list, nor is there a torrent searching facility, which is frustrating. One annoying thing about this client is that the moving average for download speed continues moving after downloading has finished.
At the time of writing, version 1.3 of the software is imminent, so perhaps that will be fixed by the time you read this. It isn't a bad effort by any means, though it lacks some of the system integration of others, and is only a middleweight when it comes to useful options. It does work, and is pretty light on resource use.
Middle-of-the-road performer, but it does get lots of development love.
Apps based on KDE are expected to be full of settings, options and menus, and this is no exception. KTorrent wouldn't easily be mistaken for a Mac OS X application – every pixel of its interface seems to want to communicate urgent information, or request some option to be set.
For those who aren't frightened by overt functionality or upset that their application interface may wish to impart some useful details, this is probably no bad thing.
In terms of the underlying technology, KTorrent easily matches or exceeds every other client here, except for Vuze, as it lacks the tracker, media player and UPnP media server. To be honest, the searching is a bit lacklustre, too.
Although a number of search engines are included, KTorrent just palms you off on the respective website, which is lazy, and not as useful as qBittorrent's effort. Aside from that, KTorrent has all the bases covered.
Extra functionality is provided by plugins, and again these show the micro-management touch. The bandwidth scheduling can be set on a giant calendar, so if you want to allow unlimited uploads on Thursdays only, this is the only client that will do it. It's a KDE app of old, exposing pretty much every feature and option to user control and leaving it up to you to work out whether you need them or not.
KTorrent was the only client that managed connections to all the available peers in the time it took to download the test torrents, and it also clocked up the fastest time. Like some of the other clients, KTorrent can also be run in a headerless mode, and includes a built-in web interface.
Chock-full of features, if you can spare the effort to configure them.
This rather simplistic application started life as an offshoot or natural extension to the MonoTorrent project – a torrent library written using the Mono implementation of .NET. As most of the other clients here use the libtorrent library, we might have expected some performance differences from Monsoon – and there were.
It did hijack most of the available CPU cycles, but also managed a blistering throughput, clocking up the fastest average time for the local download test (just pipping KTorrent). With a watch folder for incoming torrents and the possibility of storing active and completed ones in different locations, this client at least serves up the basics of features in the filehandling department.
However, there's no scheduling, no scripting, no plugins and no mention of DHT or Peer Exchange (although these are supported by MonoTorrent).
Visually, the Monsoon software follows a very familiar theme, with categories down the left, a main sortable list view in the middle and a tabbed selection of information screens for the selected torrent below. As with most of the other clients in this roundup, this does extend to the ability to set various options, including changing the bandwidth settings for an individual torrent file.
Like Vuze and KTorrent, Monsoon includes a feed subscription. Many video podcasts are distributed in this way, and it's pretty simple to set up. There are some advanced filtering options to make sure you get exactly what you want.
Monsoon is a promising project that hasn't had a release in some time, although the underlying MonoTorrent library has been updated recently.
Lacking in finesse and features, but an aggressive downloader.
qBittorrent, Torium, Transmission, Vuze
This cross-platform client conforms more or less to the standard "right tree, main table panel and detail tabs underneath" school of interface design. Only the large and friendly buttons along the top show that you're not using Monsoon or many of the other clients listed here.
Although it has the impression of being quite minimal, there's much goodness hidden under the hood. It supports a sophisticated feed reader/filter subscription section for aiding with downloading series or video podcasts. There are all sorts of options buried away here, but the layout is good and easy to follow.
On the other hand, some tooltips for the many options and settings wouldn't go amiss. There's a console that shows the equivalent of an event log, as well as the list of banned IPs (should you have supplied it with a blocklist), though with these usually numbering in the thousands, it's somewhat pointless.
Far from pointless, though, is the search engine. Using a plugin mechanism to enable various torrent sites, qBittorent implements an amalgamated search strategy that's often more useful than the one-at-atime approach offered by KTorrent, for example. Just type in your search term (and choose a category for more specific results) and watch the screen fill up with matches from the supported sites, arranged in order of seed health. A great timesaver!
It's pretty middle-of-the-road in terms of performance in the tests and also the consumption of resources, but those few extra touches make it slightly more useful for general torrenting than the likes of Monsoon.
There are a lot of very good things hidden in this simple-looking client.
For lightweight use, it doesn't come much lighter than this. Consuming less memory than the average MP3 file, this tiny client can actually manage to do a good download job at reasonable speeds, but if you were looking for bells and whistles, you came to the wrong tree.
The interface is pretty stark, but that's because there aren't actually that many features. The single panel shows a table with six columns – just enough to serve up the torrent name and the current speed and progress. If you were expecting fancy graphs or graphical swarm diagrams, you'll need to grab a crayon and draw them yourself.
You can get some additional info on the loaded torrents by right-clicking them and choosing Properties, which does at least enable you to manipulate priorities and download locations, as well as view the current peer list. There's a menu option for loading a banned IP list, but it doesn't actually seem to do anything.
Crucially, encryption is on the missing feature list. As this is one of the ways many clients get around ISP imposed bandwidth limits, it's likely that you might find it hard to find peers (although DHT is actually implemented) as more and more clients default to at least preferring an encrypted connection.
Of course, there are many other features you may miss, but Torium does manage to fetch and seed torrents with a degree of competence, so the basics are there. If you absolutely must have a torrent client on some really, very, extremely resource-restricted device, this might just work out for you, but the lack of modern features means that it's unlikely to function well for anything but the most popularly seeded files.
Lightweight in the extreme, at the expense of missing crucial feature.
You have to put in some sort of special effort to become the default (and thus, automatically most popular) torrent client for Ubuntu.
For Transmission, this came in the guise of streamlining everything and making it so simple that it's hard to go wrong. In some instances, this does also make it difficult to do the very specific thing you wanted to do, which is always the case when applications are simplified to the point of fool-proofery.
There doesn't seem to be any form of control over how many torrents are active at a time, which is a shame because this is a good way of fine-tweaking performance. In other repsects, Transmission is up to date with support for proxying, all the latest DHT/PEX and magnet technology as well as LAN peer detection, encryption and blocklists.
The client has a friendly and easy-to-use interface. The scrolling main window shows either all torrents, active torrents, seeds, downloads and paused transfers. A simple updating progress bar and transfer speed readout has all you need to know, though it has to be said that the lists do become unmanageable if you're dealing with lots of torrents.
Another plus point for Transmission is the focus on reducing the resource overhead. Like some of the others here, it can also be run as a headless client with an optional web interface. Transmission's pared-down resources mean it will easily fit on an embedded set-top box or NAS.
Transmission is still in full-on development mode, with lots of changes and fixes being added regularly. If simple is what you want, look no further than this.
Very easy to use, and ongoing development will make it better
Vuze, which used to go simply by the names Azureus Vuze and plain old Azureus, has consistently been one of the top torrent clients on any platform pretty much since release. It isn't difficult to explain that popularity when you consider it was the first client to offer a high degree of user configurability and feature innovation.
It has also been available on Linux since launch, because it's built on Java, but that's possibly why it didn't fare as well as it did on Windows machines – historically, Java has been slow on Linux and consequently Azureus seemed bloated, unresponsive and took up way too many system resources.
Subsequent versions, now running on a muchimproved Java, fare a lot better. Looks-wise, Vuze is in a league of its own, although some of the UI sensibilities seem to be borrowed from the Mac OS X desktop.
Although it handles other files, Vuze is ever-so-slightly geared towards media. For a start, finished downloads are moved to the Unwatched section. where you'll find your downloaded files complete with a thumbnail preview (if they do happen to be video files).
In a nice touch, it's possible to subscribe to video podcasts easily this way too – if you've downloaded an episode from Vuze's suggestion list or a recognised feed, the option to download future episodes automatically will appear via a familiar feed icon.
Vuze has a built-in player, though this didn't actually work on our test box, but it's still no effort to launch the files – they'll fire up in your default media player. If you want to watch from a different computer, Vuze includes a media server app that complies with the UPnP methods of detection, so you can download on your desktop and view on a laptop or wherever.
To be honest, these features account for much of the apparent bloat of the system. For many, the killer feature is the automatic, editorialised feed of legitimate downloadable content that is served up from Vuze itself.
This is categorised and, while it isn't perfect, there's plenty of interesting torrenting to be done – discovering new video blogs or getting the latest movie trailers. There's no channel for Linux distros, though, so they've missed out there…
Every feature you can imagine is configurable through the preferences. Cunningly, this has been split up into different modes of expertise, so unless you enable Expert mode, you won't see all the settings that, 90% of the time, you have no need to know about.
Apart from the built-in features, which include smart remote pairing so you can control your Vuze client over the web (even from a smartphone), there are bucketfuls of plugins available to tend to your every whim. If you want to waste some extra CPU cycles, you can view the swarm cloud in 3D, or do useful things like shape your traffic yourself to avoid the wrath of your ISP.
The tests were somewhat surprising when it came to Vuze, because it was a consistently poor performer. Although it picked up the available peers quickly enough, and managed a regular bandwidth over its connections, it was still somewhat short of what was at least theoretically possible.
This may be down to problems with Java rather than the Vuze code itself. In real-world tests, where the connection bandwidths rarely get into the megabit range, it performed just as well as the other clients (although using more memory).
Vuze may be bloaty, but on a modern desktop it's just as responsive and usable as a native Linux application. It may lack some features (it uses its own notification system rather than the OS default, for example), but it's nevertheless an accomplished and friendly torrent client.
Yes, it's admittedly big and bloaty, but it's comprehensive and really quite wonderful with it.
The best Linux BitTorrent client is...
Although we had to do some sort sort of benchmarking, it's important not to read too much into it. In order to be impartial, we had to remove some real-world factors, such as the internet, latency issues and such like.
That said, Vuze did remarkably poorly in the test, in spite of using more memory and similar amounts of CPU power, it failed to top more than about 2MBps in downloading speed, even with the full bandwidth of a 100Mbps connection. This is likely an issue with the underlying Java implementation.
Transmission fared well in the tests, and has most of the features that users would like to see. It's pretty straightforward to use, and this is probably the major reason it has been included as the default in so many recent distro releases. This comes at the cost of user-set parameters.
While the software does a great job of setting up automatic defaults, there may be times when it would be nice to, for example, fine-tune the number of torrents and connections.
KTorrent shines in some areas, but is very much below par in others. The search facility is nice to have, but it effectively just palms you off with a browser view of the selected search site, although it does capture any download links and offer to add them to the download queue. On the other hand it has so many features, and is very fast, if a little confusing to configure.
Overall, this was a tougher contest than it might have seemed. Vuze does boast the best in terms of features, ease of use and system integration. With the media server built in, it provides an all-round solution that's hard to beat for most purposes.
If you want speed, you should probably take a look at KTorrent, and for ordinary ease of use without having to worry about swarms and reverse DNS lookups and the like, Transmission is worth a pop.
First published in Linux Format Issue 135
Liked this? Then check out 8 of the best web browsers for Linux
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register