aria2 is a multi-protocol & multi-source, cross platform download utility. The supported protocols are HTTP(S), FTP, BitTorrent, Metalink. It can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth.

aria2 1.17.0

Release Note

This release adds Mac OS X native SSL/TLS library support.  The IPv6
asynchronous DNS is enabled by default and A/AAAA lookups are done in
parallel. The simple Happy Eyeballs algorithm was implemented to
mitigate long timeout when connecting to IPv6 host on dual-stack host.
--save-session option only saves the options specified by command-line
or RPC.


* Updated Russian manual

  Contributed by ITriskTI

* Updated Portuguese manual

  Contributed by Gilberto dos Santos Alves

* Append --static to pkg-config arguments when ARIA2_STATIC=yes

* Save options directly specified for download in --save-session

  This change makes --save-session save only options specified for
  download, more specifically, options in command-line, -i file and
  via RPC. The other options from conf file and default values are not
  saved.  This will drastically decrease the size of session file.

* Save URI returned only from FileEntry::getRemainingUris()

  The currently used URIs are inserted back into remaining URI list in
  FileEntry::putBackRequest(), which overlaps to some of the URIs in
  spentUris_. If we save spent URIs, each time save is performed, the
  number of URIs are increased due to this overlap. This change fixes
  this bug.

* Print linked 3rd party libraries with version in `aria2c -v` output

* AppleTLS: Support credentials via KeyChain fingerprints

  Contributed by Nils Maier

* AppleTLS: Implement AppleTLS and Apple Message Digest

  Contributed by Nils Maier

* Use info level log for system trusted ca imports failure

  This is because on some platforms (gnutls on cygwin for example),
  library always fails for this function and getting ERROR every time
  aria2c invoked is too hard.

* Don't add Windows native DLLs for Cygwin build

* Remove deprecated options: --enable-direct-io and --metalink-servers

* Deprecate --enable-async-dns6

  The IPv6 asynchronous name resolver is enabled if the host has at
  least one interface with IPv6 address configured (the loopback
  address will not be counted), which is roughly the same behaviour of
  the standard getaddrinfo(3). To disable IPv6 asynchronous name
  resolver, use --disable-ipv6.

* Fix uninitialized UDPTrackerClient::numWatchers_

* Implement simple Happy Eyeballs for HTTP/FTP downloads

* Parallel A and AAAA record lookups with c-ares

  But we don't wait for AAAA query response if A query response has
  been received.  If we got IPv4 lookup response, we don't wait for
  IPv6 lookup response. This is because DNS server may drop AAAA query
  and we have to wait for the long time before timeout. We don't do
  the inverse, because, based on todays deployment of DNS server,
  almost all of them can respond A query just fine.