]> git.rkrishnan.org Git - functorrent.git/blob - README
11ad8d74154c16e01d1aaae03ae2dd81a8993e71
[functorrent.git] / README
1 From WordNet (r) 3.0 (2006) [wn]:
2
3   deluge
4       n 1: an overwhelming number or amount; "a flood of requests"; "a
5            torrent of abuse" [syn: {flood}, {inundation}, {deluge},
6            {torrent}]
7       2: a heavy rain [syn: {downpour}, {cloudburst}, {deluge},
8          {waterspout}, {torrent}, {pelter}, {soaker}]
9       3: the rising of a body of water and its overflowing onto
10          normally dry land; "plains fertilized by annual inundations"
11          [syn: {flood}, {inundation}, {deluge}, {alluvion}]
12       v 1: fill quickly beyond capacity; as with a liquid; "the
13            basement was inundated after the storm"; "The images
14            flooded his mind" [syn: {deluge}, {flood}, {inundate},
15            {swamp}]
16       2: charge someone with too many tasks [syn: {overwhelm},
17          {deluge}, {flood out}]
18       3: fill or cover completely, usually with water [syn:
19          {inundate}, {deluge}, {submerge}]
20
21 `deluge' is a bittorrent client.
22
23 building
24 --------
25
26 I suggest using cabal sandbox.
27
28 Steps:
29
30 1. cabal sandbox init
31 2. cabal install --only-dependencies
32 3. cabal build # binaries in ./dist/built/deluge/*
33
34 Goals
35 -----
36
37 - Become more profient with Haskell.
38 - Implement something non-trivial with Haskell (crypto, file operations, network
39   operations, concurrency, bit twiddling, DHT).
40 - Follow the spec. (<https://wiki.theory.org/BitTorrentSpecification>)
41 - Easy for newbies like me to read and understand along side the spec.
42 - doctest and quickcheck tests.
43 - Follow Haskell Style Guide (<https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md>)
44
45 Status
46 ------
47
48 - decode torrent files (bencoding)
49 - talk to the tracker and get the peer list
50
51 TODO
52 ----
53
54 - Peer protocol.
55 - Get the file download working in the simplest possible way.
56 - Concurrency (threads per peer)
57 - other advanced features of Bit Torrent (like DHT).
58
59