-I started writing a BitTorrent client because it seemed like fun and I am learning Haskell and wanted to see if I can write something real with Haskell than just heat the room. It is turning out to be a lot of fun.
+I started writing a BitTorrent client because it seemed like fun
+and I am learning Haskell and wanted to see if I can write something
+real with Haskell than just heat the room. It is turning out to be a
+lot of fun.
### Building
### Building
@@ -36,23+39,28 @@ Or one can explicitly specify the torrent file as input.
+This client is not usable as your daily BitTorrent client yet. You may get
+corrupted files and end up wasting a lot of bandwidth. So, until we achieve
+some robustness, consider this as a programmer-friendly project to learn
+about a bunch of stuff.
+
### Current Status
- most of the peer wire protocol works.
- talks only to one peer at the moment.
- can download files. But needs every piece to be served by the peer it connected to.
### Current Status
- most of the peer wire protocol works.
- talks only to one peer at the moment.
- can download files. But needs every piece to be served by the peer it connected to.
+- can talk to http/udp trackers.
-### WARNING
-
-This client is not usable as your daily BitTorrent client yet. You may get corrupted files and end up wasting a lot of bandwidth. So, until we achieve some robustness, consider this as a programmer-friendly project to learn about a bunch of stuff.
-
-## TODO
+### TODO
-* Test suite.
-* Talk to multiple peers concurrently.
-* Piece download algorithms.
-* Multifile torrent support.
-* other advanced features of BitTorrent (like DHT).
+- Test suite.
+- Talk to multiple peers concurrently.
+- Piece download algorithms.
+- Multifile torrent support.
+- Magnet link support.
+- other advanced features of BitTorrent (like DHT).