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


Changes: This release adds Metalink4 support and BitTorrent Local Peer Discovery. An aria2.changeUri XML-RPC method was added. It enables you to add/remove URIs to existing downloads dynamically. The user and password for the proxy server now can be specified on the command line separately. The code has been refactored based on profiler results, so aria2 now runs more efficiently than ever. Russian and Simplified Chinese translations were updated.


Changes: This release fixes the bug in which --file-allocation=falloc didn't work with single file download. It also fixes the bug in which the return value of aria2 was unreliable if an error occurred before download begins. When custom request headers are specified by the --header option, they now override built-in headers if they have same name.


Changes: This release fixes the bug that causes segmentation fault with the --max-file-not-found option involved. Now aria2 can handle a redirected URI which is not properly percent encoded. In the MinGW32 build, console readout is now always cut by 80 characters. The 'bittorrent' key was added to the response of the tellStatus XML-RPC method. The associated value of the key is a struct and contains data retrieved from a .torrent file, such as name, announce-list, comment, etc.


Changes: This release fixes the bug that causes a segmentation fault if unknown options exist in the aria2.conf file and the user cannot include an empty line in aria2.conf. The following new command line options were added: --http-no-cache, --bt-metadata-only, and --human-readable. The aria2.getSessionInfo XML-RPC method was added. The "dir" and "files" keys were added to the response struct of the aria2.tellStatus XML-RPC method. aria2 now returns a gzip compressed XML-RPC response if the XML-RPC client accepts gzip content encoding.


Changes: This release fixes the bug in which the configure script fails to detect the GnuTLS library if --without-sqlite3 is given. New XML-RPC methods were added: aria2.getOption, aria2.getGetGlobalOption, aria2.changePosition, aria2.tellStopped, and system.multicall. The --bt-save-metadata option was added. This option saves metadata as a .torrent file. This option has effect only when a BitTorrent Magnet URI is used.
- All comments
Recent commentsRe: 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.
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.
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.
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.