Programmer Bram Cohen designed the protocol in April 2001 and released a first implementation of the BitTorrent client on 2 July 2001. It is now maintained by Cohen's company BitTorrent, Inc.
Prior to version 6.0, BitTorrent was written in Python, and was free software. Very early versions released prior to December 30, 2001 were released into the public domain without a license. Versions up to and including 3.4.2 were distributed under the MIT license. The source code for versions 4.x and 5.x was released under the BitTorrent Open Source License, a modified version of the Jabber Open Source License. Versions 4.0 and 5.3 were relicensed under the GPL.
Version 4.20 of the client was dubbed Allegro by BitTorrent Inc., in reference to protocol extensions developed by the company to accelerate download performance and ISP manageability.
Since version 6.0, the BitTorrent client has been a rebranded version of µTorrent. As a result, it is no longer open source.
The BitTorrent client enables a user to search for and download torrent files using a built-in search box ("Search for torrents") in the main window, which opens the BitTorrent torrent search engine page with the search results in the user's default web browser.
The current client includes a range of features, including multiple parallel downloads. BitTorrent has several statistical, tabular and graphical views that allow a user to see what events are happening in the background. A host of views offer information on the peers and seeds to which the user is connected, including how much data is being downloaded from each and to how much data is being uploaded by each. It has an automatic recovery system that checks all data that has been handled after an improper shutdown. It also intermediates peering between itself, source file servers ("trackers") and other clients, thereby yielding distribution efficiencies. The client also enables users to create and share torrent files.
The C code has been modified to use an altogether more reasonable library which doesn't abuse the C preprocessor. It should now work under Windows and Mac OS X.
2001 August 10
The UI has been rewritten to be very simple and easier to use.
2001 August 23
A fix for a serious problem which was keeping it from using a whole net connection, a complete rewrite of Downloader.py, and other minor tweaks.
2001 September 2
Several major changes were made to the protocol, which is now frozen.
2001 September 12
This release has extensive user feedback and download resuming.
2001 October 23
UI was rewritten. It is now completely graphical and works in mozilla/netscape under UNIX. Monothreading was added which gave vast performance increases. The publisher now stores metadata in files, so it doesn't have to re-scan files every time it restarts, and the tracker now stores publisher and downloader information persistently, so downloads start working again as soon as it restarts. A clean shutdown, small improvements, and bugfixes added.
2002 January 6
For this release, the upload/download logic was thoroughly rewritten to use a tit-for-tat bandwidth trading strategy. Usage of TCP buffering was also greatly improved. Unix installation was simplified, and many small improvements were added.
2002 March 18
The UI is much nicer, and now looks like a real GUI. There are a huge number of small stability and performance enhancements, none of them directly impacting the interface.
2002 April 29
Major performance enhancements, including peers reciprocating uploads more responsively. Significant UI enhancements were made, including progress meters on file allocation and resuming. Much better error-handling and multi-file support were added, so multiple files can be downloaded with a single click. The protocol has been reworked to be much more secure, and now uses a fixed port. This should be the last backwards-incompatible release. Several major bugs were also fixed.
2002 April 30
A massive bug in the last release has been fixed. That one barely worked at all; this one is much better.
2002 May 6
In this release, the tracker has been rewritten to use asynchronous I/O, so it no longer has the hanging problems which plagued it before.
2002 May 31
Huge internal performance improvements, changes to the protocol to substantially reduce overhead, and Tracker now keeps track of which peers are still up, greatly improving scaling.
2002 June 5
A crippling bug in the download logic has been fixed. It should scale comfortably to thousands of simultaneous downloaders now.
2002 July 2
This release contains major performance enhancements and bugfixes. The publication process has been greatly cleaned up and simplified. Deployments which have too many downloaders behind NAT can now keep them out with the tracker option, --nonat 1. This will hopefully be the last release with a version check on startup - if there are no big snags in the next deployment, the version check will be removed in the next release.
2002 July 4
Reporting of disk full and rejected by tracker has been fixed. Bitfields have been made big-endian for consistency.
2002 July 18
Fixed for all the tweaks and minor issues which showed up in the last trial run, and new support for building .debs.
2002 October 2
Minor cleanups, finalizing the protocol, and removal of version checking (which happened in release 3.0).
2002 November 5
A polished UI, improved upload and download rate estimation, a new GUI for making metainfo files, and some bugfixes.
2003 January 2
Massive performance improvements and some bugfixes were made. Some utilities were added. Upload rate capping was added.
2003 March 28
This release features massive performance improvements, and now supports read-only files. The Windows build now takes command-line parameters. There were also several bugfixes.
2003 June 5
This version is enhanced with new features to make BitTorrent even more robust and easier to use.
2003 September 24
Files now only get allocated as they're downloaded, and don't fragment the hard drive. Large torrents no longer hose the CPU. Better network utilization and more consistent download rates have been achieved. Poorly seeded torrents now get out faster. Several important bugs were fixed.
2004 March 6
This version fixes bugs. The client no longer complains about tracker connection problems when transfers are still going. The bandwidth usage was reduced.
2004 March 11
This version fixes lots of bugs, adds more bandwidth savings, and improves support for peers behind dynamic IPs.
2004 March 12
The tracker works under Python 2.2 and supports 3.3 clients properly. The client is unchanged.
2004 May 15
This release fixes some bugs (including an important tracker bug and a problem where some users got 'could not find file' messages) and adds warning message support, so trackers can send non-fatal human-readable messages to clients.
This release introduces an all new queue-based user interface (based on GTK+ instead of wxWidgets). It also features various interface improvements. Many options are now modifiable from the interface, including upload rate. Statistics are now visible in the GUI. Performance was improved. BitTorrent packets are now marked as bulk data to make traffic shaping easier. Various bugs were fixed. The license has changed to the "BitTorrent Open Source License".
2005 May 20
This release adds support for trackerless operation. Torrents can now be created from the UI. I18n support has been integrated. Several small fixes have been made.
2005 May 25
Many improvements to the trackerless operation have been made. GUI support for torrent comment fields has been added. Improvements to peer identification have been made. Many small bugs have been fixed.
2005 August 27
Trackerless Torrent files can now be identified. Opening an already open torrent now behaves correctly. Play/pause state is no longer saved across invocations of the GUI. Many more bugs were fixed.
2005 August 27
This release featured many improvements to trackerless operation. Support for translations was added along with a multi-rate limiter backend. URLs on the command line are now detected more effectively. Most command line scripts were renamed. Support for non-Latin/Unicode accelerator keys was added. Many further bugs were fixed.
2005 October 13
Donation nagging was removed. Global status lights were added. The installer was vastly improved. External drag and drop of files and URLs was added. The GUI and layout were improved. Startup time on trackerless torrents was greatly improved. Several bugs were fixed.
2005 November 3
The maximum upload rate slider was fixed. A language chooser UI was added. The speed of the peer list was improved and peer identification was improved. Many small bugs were fixed.
2005 November 18
Many small bugs were fixed, particularly with trackerless operation. OS X client auto-update was added. New status light icons were added.
2005 November 22
This is the first release in the stable 4.2 series, incorporating all features and improvements from the 4.1 beta series. Most notably, support for trackerless operation was added. Internationalization was added, including some translations. The command line scripts were renamed. The user interfaces were improved.
2005 December 5
Selecting the language from the settings window was made possible. Japanese and Korean language support was added. An "Invalid menu handle" bug and several other minor bugs were fixed.
2005 December 5
Massive code reorganization was done. GTK+-2.4 support was dropped (GTK+-2.6 is now the minimum requirement). A new internal state file format was introduced. Many string changes and internationalization additions were made. An obscure "--bind" command line bug was fixed.
2005 December 11
A command line option for testing auto-update was added. Correct BitTorrent icons are assured for all windows. Gzip support, which was broken by the recent "--bind" fix, was revived. Broken error handling code was removed.
2005 December 21
An "Invalid Menu Handle" error when upgrading was fixed. A bug in automatic seeding code was fixed. "launchmany-curses" was fixed for Python 2.2.
2005 December 21
Support for "--geometry" and for remembering window size and position was added. Fixes for window titles and system tray tooltips as well as for the NAT status light were made. An "Invalid Menu Handle" error when upgrading was fixed. "launchmany-curses" was fixed for Python 2.2.
2006 January 9
The status light state machine was improved and a "signal strength" indicator was added. Fastresume error messages were fixed. Several IPC bugs and other bugs were fixed.
2006 January 25
New icons were introduced. More fixes were made to Python 2.2 compatibility issues and to "Invalid Menu Handle" cases. The global upload rate calculation was fixed.
2006 February 1
All bugfixes and improvements from the Beta branch were incorporated, including the upgrade to GTK+ 2.6 API functions, massive code reorganization, internationalization improvements, new icons and status lights, remembering of window size, and more. A memory leak was fixed. Hebrew and Icelandic language support was added.
2006 May 5
This release features a completely new UI, the introduction of smart download/queuing behavior (as well as smart seeding behavior), a torrent priority system, encryption support, download rate control, fast extensions, and torrent "title" support. Progress bars, transfer rate graphs, error handling, and reporting have been improved.
Flat design and move away from skeuomorphism in general (exceptions exist - for a move towards more skeuomorphism, see for example the Countdown with a new skeuomorphic 3D animation of a spinning wheel).
BitTorrent DNA (BitTorrent Delivery Network Accelerator) is a program designed to speed up the viewing of streaming video, downloading software (with or without the BitTorrent protocol) and playing online video games. It does so by distributing the end users' downloads between each other. In this way, the developers intend that content providers should take less load on their servers so the end users can receive the content faster. It runs in the background whenever the operating system is running.
BitTorrent DNA is different from traditional BitTorrent in that it relies on publisher HTTP servers in order to provide publishers with guaranteed minimum data delivery rate, as well as give publishers control over content delivery (peers must connect to the origin server before they can reach other peers), and collect information about content delivery to share with the publisher. The quality of the file transfer is specified in terms of a long-term average bitrate for data and in terms of meeting deadlines when streaming. It also can give bandwidth to TCP and other traffic.
DNA is also different from traditional BitTorrent in that it is a UDP-based protocol that has replaced regular TCP-based bandwidth throttling with a much more sensitive bandwidth management technique.
Apart from being installed by third party websites and software companies, the program for end users is also installed when the official BitTorrent client is installed (starting with the rebranded version 6.0). However, it can be independently uninstalled.
The first version of the DNA made it possible to keep the DNA application installed and yet temporarily stopped until the next system restart (through the system's control panel, in Windows XP). The DNA GUI was completely removed in the official BitTorrent version 6.1 and 6.1.1, but was re-introduced in version 6.1.2.
Since October, 2007 BitTorrent DNA has been offered by BitTorrent, Inc. as a commercial service that content providers can purchase (for an undisclosed price) and as a free background program for end users. Company President Ashwin Navin launched the product claiming that "Implementing BitTorrent DNA on top of legacy infrastructure has the profound impact of allowing our customers to deliver a better user experience, higher quality video, faster software downloads, all with the security and reliability of a managed service."
Navin in a podcast interview claimed that he attempted to sell BitTorrent DNA in January 2005. After finding that BitTorrent's brand was too polarizing for potential customers, they delayed the launch until after partnering with nearly 50 media companies in the BitTorrent Entertainment Network. That provided the company enough public validation to finally launch BitTorrent DNA two and half years later.
The service's first customer was the company Brightcove, that chose to use it to distribute streaming video files.
As of May 2009, the Asus support website is using BitTorrent DNA as an additional download method of their larger files in addition to their multiple somewhat internationally distributed HTTP servers and content delivery mirrors and other redirection facilities Asus has been known to rely in the present and past for their data delivery needs. Currently, a separate "P2P" icon is being presented for the DNA style downloads next to the "Global" and "Chinese" located servers as an example.