Aria2 is an open source command line tool which can download files using various protocols (HTTP, HTTPS, FTP, BitTorrent, Metalink).
Don't be put off by "command line" - aria2 isn't difficult to use. At a minimum, you can download files just by entering their URL, like aria2c http://www.domain.com/folder1/bigfile.pdf
If you'd like to take more control, though, aria2 has a vast number of optional commands. Would you like to download a file via multiple connections? Validate a download to check its integrity? Resume an interrupted download, throttle your download speed, set a user name/ password for authentication? It's all here, and the torrent support is particularly impressive (DHT, PEX, Encryption, Magnet URI, Web-Seeding, Selective Downloads, Local Peer Discovery and UDP tracker).
These commands may be combined, sometimes with impressive results: the program can download the same file in separate chunks from HTTP and FTP servers, while uploading everything you've got so far to a BitTorrent swarm.
But again, don't be put off by any apparent complexity. There are simpler features, too. Point aria2 at a text file containing URLs, for example, and it'll read, download and save them all: very convenient.
This release fixes the bug that causes assertion failure during
Make assertion hold
If we have peer which is already used, make addAndCheckoutPeer()
fail. If peer is in unused list, first remove the old entry, and
then add new one. This would make assertion in ~DefaultPeerStorage