aria2 に似たアプリケーションはいくつか存在しますが、以下の 2 点 において aria2 は差別化されます: (1) 複数のソース (http/ftp そして BitTorrent) からダウンロードで きる。 (2) aria2 に URL のリストを与えた場合、それらを一つ一つ逐次的にダウンロー ドするのではなく、複数並列でダウンロードすることができます。一つ ずつダウンロードを待つ必要はないのです。これにより aria2 は与え られた帯域をめいいっぱい使用して高速なダウンロードを実現します。
ファイルをHTTP(S)/FTPとBitTorrentの両方から同時にダウンロードする機能を持っています。HTTP(S)/FTPからダウンロードしたデータは、BitTorrentネットワークにアップロードされます.
信頼性 という意味でもっともすぐれたHTTP(S)/FTPダウンロードユーティリティ です。なぜなら、Metalink のチャンクチェックサムをサポートしており、 BitTorrentのようにダウンロードした部分部分のチェックサムを照合す る機能をもつからです。チェックサムが違っていればその部分だけダウ ンロードすればよいのです。従来のようなファイルをすべてダウンロード してからチェックサムをとり、間違っていれば全部ダウンロードしなおすことと較べてください。 その差はファイルサイズが大きくなるにつれて明らかです。
This release changes the default disk cache size to 16 MiB. To change the default size, --with-disk-cache configure option was added. Now used URIs are also saved by --save-session option. The control file is now always saved if --force-save is given. The ctrl-c handling on Mingw build was improved. The internal intl library is no longer supplied. From this release, C++11 compiler is required to build aria2 executable. For gcc, at least 4.6.3 is required.
* Use AM subdir-objects
Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of
doing so.
Closes GH-120
* AM_SILENT_RULES([yes]) with backwards-compatiblity
Supported since automake-1.11. There is no point in having the very
verbose compile stuff running about, which cannot even silenced
properly with `make -s` by default. Otherwise, `make V=1` or
`--disable-silent-rules` are your friends
* Fix automake-1.14 am_aux_dir
AC_USE_SYSTEM_EXTENSIONS will cause AC_PROG_CC, which is overridden
by automake-1.14, which will then init (part) of automake, in
particular am_aux_dir expansion, which in turn relies on ac_aux-dir,
which is not initialized at this point, and thus: certain doom (or
fun, depending on your POV and mood :p)
Hence call AC_USE_SYSTEM_EXTENSIONS only after
AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro
shuffling.
Tested against automake-1.10 (OSX Lion/XCode version) and
automake-1.14 (homebrew version)
* Require external gettext for --enable-nls
And stop using the internal flavor with ./intl
* Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr
The clang shipped with OSX XCode and clangs not build enabling
libcpp, will default to the libstdc++ headers and lib installed on
the system. In the OSX case, that libstdc++ is the one bundles with
gcc-4.2, which is far too old to provide all required C++11 types,
such as std::shared_ptr. Hence, the C++11 check should try to
compile a program with a C++11 type and try -stdlib=libc++ if the
default lib fails to compile said program.
* Make the configure check for C++11 compiler mandatory
Remove stray "dnl", so that mandatory actually works with (my)
autoreconf.
* Always build doc/manual-src
Should sphinx-build be not available AND the man file not be prsent,
then just "touch" it into existence (and warn about that)
* Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM
* Implement a simple resource lock (threading)
In this initial implementation Locks are no-ops on platforms other
than Windows.
* Check for sphinx-build during configure
* Add --with-disk-cache configure option
Enables packagers more fine grained control over the default value
without having to mess with config files.
See GH-115
* Change defaults: Enable 16M disk cache by default.
* Always save control file if --force-save is given
* Set log level DEBUG for unittests
* Check that C++ compiler supports override keyword
If the compiler supports override, define CXX11_OVERRIDE as
override, otherwise define it as empty. Use CXX11_OVERRIDE instead
of override.
* AppleTLS: Fix MessageDigestImpl
* AppleTLS: Fix session CFRelease stuff
* Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in
compiler
* Require -std=c++11 and use std::shared_ptr instead of SharedHandle
* Join URI on redirect
* Send HAVE message to the peer which the piece is downloaded from
Historically, aria2 did not send HAVE message to the peer which the
piece is coming from, thinking it is obvious that the peer knows we
have the piece. But it is not obvious if one piece is download from
more than 1 peers (e.g., end game mode). So it is better to send
HAVE to all peers connected.
* Improvements to --follow-torrent=false documentation.
Patch from gt
* SessionSerializer: Truly unique URIs
Before, only spent uris where sanitized not to be contained within
remaining uris. Change this so that each uri in the
union(remaining,spent) get saved once at most. The order of the
uris will won't be changed, with remaining uris going first followed
by spent uris.
Also avoid copying the uri std::strings around during dupe checking,
usually resulting in better performance regarding CPU and space.
* Make getOption RPC method return option for stopped downloads
* SessionSerializer: Save spent URIs as well as remaining ones