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. Changes ------- * 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.