Friday, February 05, 2010

Torrent applications

Over the past years, I have used many torrent applications. There are a number of applications for downloading/managing .torrent files. Here's a compilation of the few applications I have used and my experiences with them.

I have a limited broadband plan and I work from home quite regularly. So, I need to make sure that my torrent downloads don't eat up my bandwidth. Hence I usually schedule my downloads during the "happy hours" when downloads are unlimited. It's from 2AM to 8AM. To utilize this "happy hours" optimally, the feature of scheduling downloads in a torrent application would be very useful, albeit not a necessary one though. If the torrent application does not have scheduling, I can use "at" daemon and cron jobs to start and stop the downloads at appropriate times.

I also want my applications to be lightweight, i.e., light on resources (memory, cpu consumption, etc), small in size and with minimal dependencies. Let us see how the different torrent applications size up to my requirements.

'BitTorrent' client

This is a very simple client with a simple interface. It does not support many features like scheduling, upload/download limits per torrent/connection, etc. But it is pretty much light on resources and gets the job done. (It does have a few dependencies though). There are other applications that are 'lighter' and are more feature rich. So, I wouldn't recommend this.


This is the default bittorent client that is being shipped with ubuntu these days. This is a very light weight client with not much dependencies. It also supports all the standard features of a torrent application. There is no scheduler as such, but there is an option for temporary speed limits which gets the job done. It also has a cli mode to download via command line. The configuration options can be passed as parameters or saved in the config file. All in all, this is a great application which I would recommend to everyone. Since this is a GTK application, KDE buffs may not find it very visually appealing, though.

'rtorrent', 'ctorrent' and 'aria2'

These are all command line applications, which are very light weight and feature rich. Rtorrent has ncurses based UI. (It takes a while to get used to the key combinations). Ctorrent and aria2 are purely command line tools. They support all the common features. You can either set the options (like download/upload limits) in the config files or pass them as parameters. None of these have built in schedulers. Just use the 'at' command or cron jobs to start/stop them.
Of these, aria2 is my personal favourite as it supports http/ftp downloads (segmented downloading with resume support) as well as bittorrent and metalink protocols. I would recommend all of these cli tools. The only downside to these cli tools are that they don't display a whole lot of information about the torrent being downloaded (like the GUI apps). For e.g., the no. of connected peers, current and average download speeds, tracker info, percentage of completion of individual files in the torrent, etc, such information may not be displayed in these cli tools.


This is the default torrent application for KDE. This used to be my default torrent application for a long time. I was using this even on Gnome desktop. I wouldn't call it lightweight as it depends on a lot of KDE libs. So, if you are using any other Desktop Environment like Gnome, LXDE, XFCE, etc, you may want to download one of the other torrent applications.
KTorrent is feature rich and supports plugins too.. I used to like the scheduler plugin and used it a lot. But recently when I installed KTorrent, the same scheduler plugin did not work reliably. I had scheduled the download to start at 2:30AM and stop at 8AM. But somehow, the download started prematurely at around 12:30AM or so (which I found out from my usage logs). This caused about 250MB to be billed on my name! Also, a few days later, I saw that the scheduler did not stop at 8AM too. It kept downloading past the 8AM. So, maybe there is a bug. Use the scheduler at your own risk. You can still use cron/at to schedule your downloads.
Overall, KTorrent is a good torrent application for KDE. Beware of the scheduler plugin. People using Gnome/LXDE/XFCE, can use something lighter.


Deluge is a pretty lightweight python+GTK application. The GUI and the daemon are 2 different processes. Apparently you can manage your downloads from a web interface too. I haven't tried it out though. The GUI is simple, unintrusive and is feature rich. Deluge also supports plugins. But there is no scheduling available, either in the application or via plugins. I used to use the cron/at jobs to start/stop deluge. One major problem I have experienced is that often deluge hangs on startup. The GUI would just hang and you have no option but to kill and start again. Most often, kill once and restart would always start it correctly. Sometimes, it would hang everytime the GUI is started. To get it working again, i would kill/restart the 'deluged' daemon and then start the deluge GUI client. That would almost always work and get the application up and running. But as you can see this is quite a problem. I would have an 'at' job to start deluge at 2AM. When I wake up the next morning at 7AM, I see that it has hung on startup and no downloads have begun! This has happened to me innumerable number of times. So, I have given up and started using other applications. [I did search for this problem on google. I could not find others who had the same problem. So, maybe it was just me, maybe something wrong in my environment. Another thing to note is that I have tried deluge for over 4-6 months. Since I kept my archlinux system and all applications upto date, I have used several versions, with no change in behaviour).

Vuze (Azureus)

When I started using this, it was called Azureus. Now it has been given a new name - Vuze. This is one of the heavyweights as it is based on Java. Also, the new interface of Vuze is bloated with lots of unwanted "features" like browsing for "popular" video clips from within Vuze. The new UI of Vuze is quite complicated and overwhelming. The older UI, which was when it was called Azureus was simpler and presented all the information very well. I would prefer the older Azureus to the newer Vuze any day.
In terms of features, it is a very feature rich application. It is an excellent application for downloading torrents. I have always regarded Azureus as very "reliable" and works well out of the box. Prioritisation (of individual torrents as well as files within torrents), scheduling and all other features work well. Overall, it is a very good application that I would recommend, if you are wiling to overlook all the bloat.


This is one of the lightest torrent applications with almost no dependencies whatsoever. It is less that 250KB and is feature rich, very easy to use. I would highly recommend this for it's features, lightweight, simple UI and excellent performance. So, what's the downside? It is a windows application and has no native Linux port! Well, disappointing as it is, the good news is that it just works great with wine. It supports prioritisation, scheduling and other features


There is no one application that is for everybody. Try out all of them and use what you like. If you don't mind running it in wine, µtorrent would be the simple, robust and excellent lightweight torrent application that I recommend. KDE folks can stay with KTorrent. For a lightweight torrent application, use one of the cli apps - aria2, rtorrent, ctorrent, transmission-cli. If you want a lightweight GUI application, use transmission/deluge.