# A command line BitTorrent client.
-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
- doctest and quickcheck tests.
- Follow Haskell Style Guide - https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md
+### 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.
+
### 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).
### Misc