making things better for seeders.
In the beginning, Bram Cohen invented BitTorrent. It is a half-HTTP, half-TCP based peer-to-peer protocol. Peers talk to a central server ("Tracker") to obtain other peers to talk to using HTTP; the peers communicate with eachother over TCP. Peers find out about files for download by downloading much smaller metafiles ("Torrents"), which also provide data integrity by SHA1-summing the actual file being downloaded.
It's a beautiful system.
So simple and effective that literally hundreds of BitTorrent download sites have sprung up.
But it takes many components to create a BitTorrent site. First, you need a Tracker. The standard tracker is written in Python, although other C-based ones are available. Then, you need somewhere to serve up your torrents, usually a website. Already there's two servers running. Most people want to show some sort of information about how many people are currently uploading and downloading a given file on their site. This requires communication between the tracker and the webserver, which is most commonly done using another scripting language. To make matters worse, this language is seldom Python; it's usually PHP or Perl.
Because of this, the "Normal" way to have a website with BitTorrents (and the trackers that needs them) involves a BitTorrent tracker running on Python, maintaining regular communication with an Apache server running PHP or Perl. The PHP or Perl script has to read the BitTorrent tracker's BEncoded data, turn it useful variables, and return the result in HTML.
What if it didn't have to be that way? What if you could make Apache do the BitTorrent tracking for you? That's one less program that needs to be run. What if there was a way, also, to make Apache tell you what was going on with the tracker without all of this fussing around in BEncode? That's one less (often painfully slow) process that needs to be handled.
What if it did all of this, while running 25-500% faster than the standard tracker, allowing you to configure your tracker in Apache's on httpd.conf file, with several interesting extensions to the BitTorrent tracker avaialable taboot?
mod_bt is a C-based implementation of Bram Cohen's BitTorrent protocol. It runs as an Apache 2 module. Infohash and Peer data is stored in a Berkeley DB 4.2 database, and the tracker's operating statistics are kept in shared memory. While Perl is not required to use the tracker, it does extend it; language bindings are included so that perl scripts may observe and/or manipulate a running tracker, and a mod_perl integration module is provided so that Apache handlers that make use of the tracker can be written in perl.