summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md62
1 files changed, 59 insertions, 3 deletions
diff --git a/README.md b/README.md
index 1eb27cc1..d685bb5f 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,66 @@
1# Synopsis 1# Synopsis
2 2
3This package aims to provide a thin layer for bittorrent protocol. 3This package aims to provide a thin layer for bittorrent protocol.
4Basically it provides serialization\deserealization and some widely used routines. 4Basically it provides serialization\deserealization and some widely
5used routines.
5 6
6# Description 7# Description
7 8
9## Modules
10
8The module hierarhy is tend to be: 11The 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
20The protocol has many extensions[1] and it's seems like no one want to
21use just core protocol, at least I'm not. Any modern application that
22uses bittorrent protocol in any way will use some subset of extensions
23anyway. Thus it's reasonable to implement at least some part of widely
24used extensions here, so we could provide nice high level API and well
25integrated interface.
26
27This section should keep track current state of package in respect of
28BEP's. Please _don't_ use this list as issue or bug tracker or TODO
29list or anything else: when in doubt don't change the table.
30
31In 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
46We should try keep table in order of priority, so first BEPs should be
47are most important and last BEPs are least important. (but important
48too)
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.