Thanks to this beautiful Api it was very easy to add a lot of features to the core api.
So here is what I have added during the last month (with the help of Alan):
- super-seeding (also known as the initial seeding) it permit to be faster when you have made a torrent and start to broadcast it on net…In this mode the rules to choose where I send piece are different
- uTorrent peer exchange: exchange with the swarm the peers.
- web seeding (getright specification only) This specification allow to download on web site with HTTP and FTP and do not need any script on server side (just a regular link). This specification contain a bonus which is just a nice to have : gap management but I have not implemented it. There is just some basic code on my branch in piece picker class.
- libtorrent metadata support: you can receive the other metadata contain in the torrent file from other peer with this message. this features allow monotorrent to be tracker less. You just download the infohash with a magnetlink and get from other peers the torrent file.
I have code some other things which are not on trunk :
- magnet link: this features is like the edonkey link. It is link to the libtorrent metadata features.
- a basic work for gap management in piece picking process (getright specification)
- Event and function to have chat message usable in lib. This will evolve to support Azureus chat message protocol
- azureus protocol: I have just started it and it is far from compilable but will be soon I need to do the negotiation protocol too!
In the big next TODO there are
- the Distributed Hash Table (DHT) which allow to be fully trackerless.
- make the winform gui look like gtk GUI
- rss fully supported in winform gui
- search engine
- partial seed
- Location-aware protocol
Here you have a list of extension in protocol:
http://wiki.theory.org/BitTorrentSpecification#Reserved_Bytes (technical view)
http://www.bittorrent.org/beps/bep_0000.html#draft-beps (official draft)