diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 62 |
1 files changed, 59 insertions, 3 deletions
@@ -1,15 +1,66 @@ | |||
1 | # Synopsis | 1 | # Synopsis |
2 | 2 | ||
3 | This package aims to provide a thin layer for bittorrent protocol. | 3 | This package aims to provide a thin layer for bittorrent protocol. |
4 | Basically it provides serialization\deserealization and some widely used routines. | 4 | Basically it provides serialization\deserealization and some widely |
5 | used routines. | ||
5 | 6 | ||
6 | # Description | 7 | # Description |
7 | 8 | ||
9 | ## Modules | ||
10 | |||
8 | The module hierarhy is tend to be: | 11 | The module hierarhy is tend to be: |
9 | 12 | ||
10 | * Data.Torrent — for torrent metainfo, data verification, etc | 13 | * Data.Torrent — for torrent metainfo, data verification, etc |
11 | * Network.Torrent.PeerWire — peer wire TCP message passing. | 14 | * Network.BitTorrent.Peer — common peer related types. |
12 | * Network.Torrent.Tracker — tracker HTTP message passing. | 15 | * Network.BitTorrent.PeerWire — peer wire TCP message passing. |
16 | * Network.BitTorrent.Tracker — tracker HTTP message passing. | ||
17 | |||
18 | # Status | ||
19 | |||
20 | The protocol has many extensions[1] and it's seems like no one want to | ||
21 | use just core protocol, at least I'm not. Any modern application that | ||
22 | uses bittorrent protocol in any way will use some subset of extensions | ||
23 | anyway. Thus it's reasonable to implement at least some part of widely | ||
24 | used extensions here, so we could provide nice high level API and well | ||
25 | integrated interface. | ||
26 | |||
27 | This section should keep track current state of package in respect of | ||
28 | BEP's. Please _don't_ use this list as issue or bug tracker or TODO | ||
29 | list or anything else: when in doubt don't change the table. | ||
30 | |||
31 | In order to keep table compact we describe table layout at first: | ||
32 | |||
33 | * **BEP #** — Just number of enchancement. | ||
34 | * **Title** — Full official enchancement name. | ||
35 | * **Modules** — modules that _directly_ relates to the BEP. This is where | ||
36 | BEP implemented, where we should look for the BEP. If a module has | ||
37 | only changes due to integration with the BEP then it _should not_ be | ||
38 | listed in the **Modules** list. | ||
39 | * **Status** — is the current state of the BEP. Status lifecycle has the | ||
40 | only way: Want -> Implemented -> Tested -> Integrated -> Done. You | ||
41 | might use (A -> B) to indicate intermediate steps. Note that | ||
42 | implemented _doesn't_ means that BEP is ready to use, it _will_ be | ||
43 | ready to use only after it pass Tested, Integrated and finally | ||
44 | becomes Done. | ||
45 | |||
46 | We should try keep table in order of priority, so first BEPs should be | ||
47 | are most important and last BEPs are least important. (but important | ||
48 | too) | ||
49 | |||
50 | | BEP # | Title | Modules | Status | ||
51 | |:-----:|:------------------------------------------:|:------------------------------------|:----------- | ||
52 | | 3 | The BitTorrent Protocol Specification | Data.Torrent | Implemented | ||
53 | | | | Network.BitTorrent.Peer | | ||
54 | | | | Network.BitTorrent.PeerWire | | ||
55 | | | | Network.BitTorrent.Tracker | | ||
56 | | 4 | Known Number Allocations | Network.BitTorrent.Extension | Want -> Implemented | ||
57 | | 20 | Peer ID Conventions | Network.BitTorrent.Peer.ID | Want -> Implemented | ||
58 | | | | Network.BitTorrent.Peer.ClientInfo | | ||
59 | | 9 | Extension for Peers to Send Metadata Files | | Want | ||
60 | | 23 | Tracker Return Compact Peer Lists | Network.BitTorrent.Tracker.Protocol | Implemented | ||
61 | | | | Network.BitTorrent.PeerWire.Message | | ||
62 | | 5 | DHT | | Want | ||
63 | | 6 | Fast Extension | Network.BitTorrent.PeerWire.Message | Want -> Implemented | ||
13 | 64 | ||
14 | # Build Status | 65 | # Build Status |
15 | 66 | ||
@@ -17,3 +68,8 @@ The module hierarhy is tend to be: | |||
17 | 68 | ||
18 | [1]: https://travis-ci.org/pxqr/network-bittorrent.png | 69 | [1]: https://travis-ci.org/pxqr/network-bittorrent.png |
19 | [2]: https://travis-ci.org/pxqr/network-bittorrent | 70 | [2]: https://travis-ci.org/pxqr/network-bittorrent |
71 | |||
72 | |||
73 | ### Footnotes | ||
74 | |||
75 | [1] More precisely enchancements, but we'll use that word. | ||