aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, BitTorrent, and Metalink. It has a powerful segmented downloading ability, downloading a file from multiple sources and multiple protocols and utilizing your download bandwidth to the maximum. It supports downloading a file from HTTP(S)/FTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP is uploaded to the BitTorrent swarm. Using Metalink's chunk checksums, aria2 automatically validates chunks of data while downloading a file like BitTorrent.
| Tags | Communications File Sharing Internet Web FTP Bittorrent |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Linux Mac OS X Windows Windows Cygwin BSD FreeBSD |
| Implementation | C++ |
| Translations | French Japanese German Russian Brazilian Portuguese Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Danish Dutch English Finnish Greek Hebrew Hungarian Indonesian Italian Norwegian Polish Serbian Spanish Swedish Thai Turkish Ukrainian Vietnamese |
Recent releases


Release Notes: This release fixes the bug that prevents the --checksum option from working correctly. It also fixes the bug where a log file was not created if a warn level log was created before the log file was opened. Now aria2 doesn't assume the download has completed just because file size matched. The old behavior is problematic, because aria2 just assumes the download is completed, but in reality it is not.


Release Notes: This release adds many available options to aria2.changeOption and aria2.changeGlobalOption RPC methods. IPv6 literal address is now supported in the proxy options. The --metalink-server option is now deprecated, and the --split option should be used instead. In this release, --metalink-server is an alias of --split. The format ETA in console readout is changed slightly. The option --stop-with-process has been added.


Release Notes: This release fixes a libgcrypt version checking error. Several commandline options have been added. aria2 now returns an error response if an RPC request parameter has the wrong type. For the MinGW32 build, Unicode filename support has been added. aria2 now uses libnettle and libgmp by default instead of libgcrypt. If you want to use libgcrypt, use the configure options --without-libnettle and --with-libgcrypt.


Release Notes: This release adds RFC 6249 Metalink/HTTP support. The current implementation only uses rel=duplicate links. The --enable-direct-io option was deprecated because of a performance issue. Since recent GnuTLS uses libnettle by default instead of libgcrypt, this release added initialization code for libgcrypt.


Release Notes: This release adds a --pause option that makes the download paused state immediately when added. If --save-session is used, aria2 will save a download paused with the --pause option. The aria2.getGlobalStat RPC method was added. It returns global statistics such as overall download speed. This release also fixes the bug where an RPC request fails if it is compressed. aria2 will no longer save a removed download in the --save-session text file. --file-allocation=falloc now works in the MinGW32 build. This only works with NTFS. A Russian translation of the man page and HTML manual was added.
Recent comments
12 Oct 2010 13:48
Awesome segmented downloading abilities, could be improved if you could implement the ability to operate on multiple interfaces. Even if this was tied to a particular protocol, it would be awesome to be able to balance networking load on the software level rather than requiring expensive equipment or complicated server set ups.
17 Nov 2007 21:56
Re: anti-social software
> Segmented downloads use multiple (2, 4,
> sometimes a hundred) requests tot he
> same server.
I think what your talking about is more accurately termed "download accelerators".
Segmented downloads does not imply the same server, bittorrent for example could be considered segmented download.
The whole point of metalink is to desribe multiple sites that contain the whole file, if there are multiple servers then it makes no sense for a client to load lots of requests on just one server.
17 Nov 2007 17:21
Re: anti-social software
% Fragmented downloading leads to a
The description and my comment both clearly talk about segmented downloads. Segmented downloads use multiple (2, 4, sometimes a hundred) requests tot he same server.
Using them of course reduces bandwidth for everybody due to the excessive overhead due to multiple tcp connections and requests, and there is no load balancing, the only effect is that it results more or less in a denial-of-service attack to some servers that cnanot cope with hundreds of requests.
> This type of downloading is a beneficial
> evolution of these old protocols.
Segmented downloads (as opposed to what you are tlaking about) is what aria2 claims to implement, and those are neither beneficial nor anything new. Its anti-social, as I said before. Supporting sofwtare thta supports it is anti-social, too.
17 Nov 2007 15:42
Re: anti-social software
> when using this software, keep in mind
> that segmented downloads increase the
> load on the server and the network and
> actually increases bandwith at the cost
> of others. in the end, when most people
> use this horrible hack, everybody will
> have slower download rates as a result.
>
> best do not support this kind of
> software.
Any bandwidth increases would be due to more requests per downloaded byte, and would only be a fraction of a percent.
Fragmented downloading leads to a natural load balancing as data ends up being downloaded from servers with the most capacity rather than overloading the primary site.
This type of downloading is a beneficial evolution of these old protocols.
28 Mar 2007 19:35
anti-social software
when using this software, keep in mind that segmented downloads increase the load on the server and the network and actually increases bandwith at the cost of others. in the end, when most people use this horrible hack, everybody will have slower download rates as a result.
best do not support this kind of software.
A program to analyze your databases and check your data quality.