Aria2 - The Fast and Reliable Download Utility
aria2 is a multi-protocol & multi-source, cross platform
download utility. The supported protocols are HTTP(S), FTP,
BitTorrent
(DHT,
PEX,
MSE/PE),
and Metalink.
aria2 can download a file from multiple sources/protocols and
tries to utilize your maximum download bandwidth. 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.
There are other alternative applications. But aria2 has 2
distinctive features: (1) aria2 can download a file from several
URIs(HTTP(S)/FTP/BitTorrent) and (2) If you give aria2 a list of
URIs, aria2 downloads them concurrently. You don't have to wait
for the current download queue to finish one file at a time
anymore. aria2 tries to utilize your maximum download bandwidth
and downloads files quickly.
There are also some applications that have the ability of
segmented downloading. Typically these applications split a file
by the number of threads and download them parallel and wait for
all threads to finish. In other words, they don't split
unfinished segments adaptively. Normally(if things goes well)
there is no problem for this strategy, but if one thread is very
slow(i.e. one of the server is very slow), then you have to
wait for it to finish.
aria2 can cope with this peculiar
situation. aria2 can split segment adaptively all the way down
to 1MiB. So you don't have to worry about the above problem. But
you might complain: if a slow server is downloading last 1MiB,
then you have to wait for that none the less. The nswer is
"no". Even in such case, aria2 does the job quite well: aria2
cancels slow server and use the faster server to finish
download. In other words, aria2 is very clever and reliable in
many situations.
Unlike original Aria, which has GTK+ interface, aria2 provides
command-line interface only. But it brings lower resource
requirement. The physical memory usage is typically 3MB(normal
HTTP/FTP downloads) to 6MB(BitTorrent downloads). CPU usage in
BitTorrent with download speed of 1500KB/sec is around 6%.
It is being actively developed by Tatsuhiro Tsujikawa.
Feature requests and comments are all welcome. Please refer to
page.
Usage example, FAQs and other useful information can be found at
aria2 wiki.
Please visit the
project page at sourceforge.net.
- Command-line interface
- Download files through HTTP(S)/FTP/BitTorrent
- Segmented downloading
- Metalink version 3.0 support(HTTP/FTP/BitTorrent)
- HTTP/1.1 implementation
- HTTP Proxy support
- HTTP BASIC authentication support
- HTTP Proxy authentication support
- Well-known environment variables for proxy:
http_proxy, https_proxy, ftp_proxy, all_proxy and no_proxy
- HTTP gzip, deflate content encoding support
- Verify peer using given trusted CA certificate in HTTPS
- Client certificate authentication in HTTPS
- Chunked transfer encoding support
- Load Cookies from file using Firefox3 and the Mozilla/Firefox(1.x/2.x)
/Netscape format
- Save Cookies from file in the
Mozilla/Firefox(1.x/2.x)/Netscape format
- Custom HTTP Header support
- Persistent Connections support
- FTP through HTTP Proxy
- Download/Upload speed throttling
- BitTorrent extensions:
Fast extension,
DHT, PEX, MSE/PSE,
Multi-Tracker
- BitTorrent
WEB-Seeding (single-file torrent only)
- Rename/change the directory structure of BitTorrent
downloads completely
- XML-RPC interface
- Run as a daemon process.
- Selective download in multi-file torrent/metalink
- Chunk checksum validation in Metalink
- Can disable segmented downloading in Metalink
- Netrc support
- Configuration file support
- Download URIs found in a text file or stdin.
The destination directory and output filename can be specified
optionally.
- Parameterized URI support
In order to work with SOCKS, you can use
proxychanins.
Now 26 language translations available! Many thanks to
translators!.
-
Brazilian Portuguese,
Bulgarian,
Catalan,
Danish,
Dutch,
Finnish,
French,
German,
Greek,
Hebrew,
Hungarian,
Italian,
Japanese,
Indonesian,
Norwegian Nynorsk,
Polish,
Russian,
Serbian,
Simplified Chinese,
Spanish,
Swedish,
Thai,
Traditional Chinese,
Turkish,
Ukrainian,
Vietnamese
I need translators. I setup
translations.launchpad.net for aria2.
Anyone who has launchpad account can participate translations for aria2.
I really appreciate your contribution.
Copyright © 2009 Tatsuhiro Tsujikawa
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
In addition, as a special exception, the copyright holders give
permission to link the code of portions of this program with the
OpenSSL library under certain conditions as described in each
individual source file, and distribute linked combinations
including the two.
You must obey the GNU General Public License in all respects
for all of the code used other than OpenSSL. If you modify
file(s) with this exception, you may extend this exception to your
version of the file(s), but you are not obligated to do so. If you
do not wish to do so, delete this exception statement from your
version. If you delete this exception statement from all source
files in the program, then also delete it here.
| features |
dependency |
| HTTPS |
GnuTLS or OpenSSL |
| BitTorrent |
GnuTLS+Libgcrypt or OpenSSL |
| Metalink |
libxml2 or Expat |
| Checksum |
GnuTLS+Libgcrypt or OpenSSL |
| gzip, deflate in HTTP |
zlib |
| Async DNS |
C-Ares |
| Firefox3 Cookie |
libsqlite3 |
Note:
GNU TLS has precedence over OpenSSL if both libraries are installed.
If you prefer OpenSSL, run configure with "--without-gnutls".
libxml2 has precedence over Expat if both libraries are installed.
If you prefer Expat, run configure with "--without-libxml2".
You can disable BitTorrent, Metalink support by providing
--disable-bittorrent, --disable-metalink respectively to configure script.
In order to enable async DNS support, you need
c-ares.
aria2 uses CppUnit
for automated unit testing.
© 2006, 2009 Tatsuhiro Tsujikawa