The HaskellTorrent package

[Tags: bsd3, program]

HaskellTorrent provides a BitTorrent client, based on the CML library for concurrency. This is an early preview release which is capable of downloading files from various torrent trackers, but have not yet demonstrated to be correct in all aspects. It is expected that the package currently contains numerous and even grave bugs. Patches to fix any problem are welcome!

[Skip to ReadMe]


Versions0.0, 0.1, 0.1.1
Change logNone available
Dependenciesbase (>=3.0 && <=5.0), bytestring, cereal, cml, containers, directory, hopenssl, hslogger, HTTP, HUnit, mtl, network, parsec, pretty, QuickCheck (>=2), random, random-shuffle, test-framework, test-framework-hunit, test-framework-quickcheck2, time [details]
Copyright(c) 2009 Jesper Louis Andersen
AuthorJesper Louis Andersen
Source repositoryhead: git clone git:// -b master
UploadedThu Mar 11 20:13:13 UTC 2010 by JesperLouisAndersen
Downloads811 total (9 in last 30 days)
0 []
StatusDocs not available [build log]
All reported builds failed as of 2015-12-08 [all 6 reports]


debugEnable debug supportDisabledAutomatic
threadscopeEnable the eventlog necessary for ThreadScopeDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for HaskellTorrent-0.1

Haskell Torrent - a haskell bittorrent client.


This is a Haskell bittorrent client. I am the introduction document and I need to be written by some generous soul!


Here is what I do to install haskell torrrent locally on my machine:

cabal install --prefix=$HOME --user

Since we are using the magnificient cabal, this is enough to install haskell torrent in our $HOME/bin directory.


Haskell torrent can currently only do one very simple thing. If you call it with

HaskellTorrent foo.torrent

then it will begin downloading the file in foo.torrent to the current directory via the Bittorrent protocol. Note: Currently we have no support for multifile torrents.

Protocol support

Currently haskell-torrent supports the following BEPs (See the BEP Process document for an explanation of these)

Haskell-torrent is not supporting these BEPs, but strives to do so one day:

Haskell-torrent will probably never support these BEPs:


For debugging, jlouis tends to use the following:

make conf build test

This builds HaskellTorrent with the Debug flag set and also builds the software with profiling by default so it is easy to hunt down performance regressions. It also runs the internal test-suite for various values.

Reading material for hacking HaskellTorrent:

Source code Hierarchy

Known bugs

"PieceMgrP"(Fatal): Process exiting due to ex: user error (P/Blk (655,Block {blockOffset = 81920, blockSize = 16384}) is in the HaveBlocks set)
"ConsoleP"(Info):   Process Terminated by Supervisor

vim: filetype=none tw=76 expandtab