Recent Releases
1.37.014 Jan 2024 16:25
major bugfix:
Fix header in --http-accept-gzip documentation by @richardnias in #1824
Fix typo in documentation, --help text by @h3xx in #1877
Update aria2c.rst by @ITriskTI in #1902
Allow empty dist name in bencode which is needed for hybrid torrent by @tatsuhiro-t in #1905
Better entropy for getRandomBytes by @tatsuhiro-t in #1907
Deal with missing nproc on macos by @tatsuhiro-t in #1924
Bump actions by @tatsuhiro-t in #1923
Bump workflow ubuntu by @tatsuhiro-t in #1929
Add missing include to WinTLSSession.h by @hmartinez82 in #1943
Fix undefined behavior/crash in GZipEncoder by @himikof in #1970
Fix Metalink4 parsing with foreign namespaces by @himikof in #1969
fix wrong dht.dat binary file structure in docs by @yixinBC in #2068
Increase ByteArrayDiskWriter maximum size by @kelson42 in #1893
Minor grammar improvements by @nkh0472 in #1804
Fix static link failure against libssh2 by @tatsuhiro-t in #2088
Update Dockerfile.mingw by @tatsuhiro-t in #2089
Prefer random number generator from crypto libraries by @tatsuhiro-t in #2091
android(ndk r23) has timegm by @FH0 in #1822
Add Dockerfile.android by @tatsuhiro-t in #2092
Remove deprecated std::unary_function and std::binary_function by @tatsuhiro-t in #2093
Update wslay by @tatsuhiro-t in #2094
Fix test errors with ubsan by @tatsuhiro-t in #2095
ci: Build with gnutls by @tatsuhiro-t in #2096
ci: Build mingw image by @tatsuhiro-t in #2097
Revert "ci: Build mingw image" by @tatsuhiro-t in #2098
Fix overflow by @tatsuhiro-t in #2099
Make releases with docker by @tatsuhiro-t in #2100
Dockerfile.mingw: Parallel build by @tatsuhiro-t in #2101
Dockerfile.android: Add dpkg-dev for dpkg-architecture by @tatsuhiro-t in #2102
Dockerfile.mingw: Remove deprecated libssh2 configure flags by @tatsuhiro-t in #2103
Dockerfile.mingw: Update how to get aria2c.exe from a container by @tatsuhiro-t in #2104
Update sphinx_rtd
1.36.022 Aug 2021 03:15
minor feature:
Update wslay
.
Bump Windows build dependencies.
.
Bump android build dependencies.
.
segfault when time_t is 64bit on 32bit arch.
Patch from Natanael Copa
GH-1666
.
Updates the make_bash_completion script to Python3.
Patch from sleepymac
GH-1672
.
Prevent corrupt downloads after app and/or system crash.
Patch from Ali MJ Al-Nasrawy
GH-1644
.
Reset sessionDownloadLength and sessionUploadLength on download start.
GH-1486
.
AppleTLS: Add TLSv1.3 support.
1.35.006 Oct 2019 03:45
minor feature:
Update mingw build dependencies
GH-1469
.
Update android build dependencies.
Update android build dependencies. Use android NDK r20 and build
aarch64 binary.
GH-1467
.
Drop SSLv3.0 and TLSv1.0 and add TLSv1.3.
TLSv1.3 support is added for GNUTLS and OpenSSL.
GH-1385
.
Platform: compilation without deprecated OpenSSL APIs.
Patch from Rosen Penev
GH-1315
.
Remove linux getrandom and use C++ stdlib instead.
GH-1306
.
Don't send Accept Metalink header if Metalink is disabled.
GH-1300
.
gnutls: that commonName is always empty.
GH-1214
.
openssl API version logic for libressl 2.7.x.
Patch from Ben Chaney
GH-1213
.
build failure when InternalDHKeyExchange is used.
1.34.016 May 2018 03:16
minor feature:
mingw: Use SetFileTime to avoid DST adjustment
GH-1079
.
UnknownLengthPieceStorage: return piece length.
show something in console status when downloading items
with unknown content length
Patch from kwkam
GH-1065
.
WinConsoleFile: colour properly.
Patch from kwkam
GH-1058
.
util: also detect xdg_ env variables on windows.
so if people like to keep FHS they could define XDG_ for it
Patch from kwkam
GH-1057
.
MacOS: Allocate once (apfs compat).
.
that signal handler does not work with libaria2.
This commit the that signal handler does not work with
libaria2 when aria2::RUN_ONCE is passed to aria2::run().
GH-1053
.
Retry on HTTP 502.
Patch from nicolov
GH-1038.
1.33.109 Nov 2017 03:16
minor feature:
Mingw: high CPU usage in BitTorrent downloads
This commit high CPU usage in BitTorrent downloads. Only
Mingw build is affected by this.
Thank you kwkam for identifying the cause of the, and helping
Deging this patch.
1.33.018 Oct 2017 03:16
minor feature:
Include arm in a filename of android zip
.
Upgrade base image of Dockerfile.mingw to ubuntu:16.04.
.
wintls: Potential for undecrypted read.
GH-1021
.
libaria2: Return last error code from DownloadHandle::getErrorCode.
GH-991
.
Windows: pass writefds also as exceptfds to select().
winsock notifies connect() failures on exceptfds instead of
writefds.
GH-969
GH-975
.
libuv: use pkg-config.
.
FeatureConfig: align text.
.
Update Dockerfile.mingw.
avoid docker cache when using git
Patch from qweaszxcdf
GH-970
.
Add --peer-agent option.
Add --peer-agent for setting the version/user agent used in the
extended handshake protocol for bittorrent.
Patch from Kurt Kartaltepe
GH-947
.
OSX: Allow to specify a build.
.
OSX: update c-ares.
.
Docs, libaria2 type of obj pushed into options vector.
aria::KeyVals is a vector of pair of std strings, therefore the type
of object being pushed should be std::pair, however in the docs, the type of the said object is
KeyVals. If one follows the docs, their code will fail to compile.
Patch from geetam
GH-941
.
AppleTLS: Silence cipher suite selection.
.
Unbreak build OSX build.
.
Update macOS versions.
.
Add --bt-load-saved-metadata option.
Before getting torrent metadata from DHT when downloading with
magnet link, first try to read file saved by --bt-save-metadata
option. If it is successful, then skip downloading metadata from
DHT. By default, this feature is turned off.
GH-909
.
regression in bfc54d0.
Don't save control file if --auto-save-interval is 0.
GH-917
.
infinite loop when file is not found.
1.32.018 May 2017 16:05
minor feature:
Clarify --max-concurrent-downloads option
GH-833
.
compile error with toolchain which lacks IPV6_TCLASS.
GH-895
.
Log directed URI in notice log level.
GH-884
.
typo.
Patch from Tse Kit Yam
GH-879, GH-899
.
Spelling Patch from klemens.
GH-870
.
Remove unused Android parts.
These parts where unused after merging#736
Patch from Fredrik Fornwall
GH-868
.
Save control file early.
GH-859
.
Update links in Dockerfile.raspberrypi.
Some links used in Dockerfile.raspberrypi are not accessible
anymore, because they were pointing to old versions of some source
packages and new versions were released. This commit this by
changing the links to point to the newest versions.
Patch from Micha? Le?niewski
GH-860
.
Propagate disk full error on pre-allocation to last error code.
GH-856.
1.31.017 Jan 2017 03:16
minor feature:
Better error message when local file status cannot be retrieved
GH-836.
.
Assertion failure in SimpleRandomizer::getRandomBytes.
Errno might not be initialized to 0, and we may get both rv == -1.
And errno != ENOSYS. This leads to assertion failure. Since
Getrandom_linux always returns -1 on failure, checking errno is
Useless in this function.
GH-823.
.
Add option content-disposition-default-utf8.
Patch from JimmyZ.
GH-813.
1.30.016 Dec 2016 03:16
minor feature:
Mingw: Use sqlite 3.15.2.
That --disable-websocket causes build error.
That lower bound of optimize-concurrent-downloads becomes 1.
GH-798.
.
Print DHT nodes with -S option.
GH-795.
.
Take into account address family when resolving DHT node address.
GH-794.
.
Allow block device file to -i option.
GH-785.
.
Expand HOME to user's home directory in several options.
The following options implement this substitution:
--ca-certificate.
--certificate.
--dht-file-path.
--dht-file-path6.
--dir.
--input-file.
--load-cookies.
--log.
--metalink-file.
--netrc-path.
--on-bt-download-complete.
--on-download-complete.
--on-download-error.
--on-download-start.
--on-download-stop.
--on-download_pause.
--out.
--private-key.
--rpc-certificate.
--rpc-private-key.
--save-cookies.
--save-session.
--server-stat-if.
--server-stat-of.
--torrent-file.
GH-780
.
--ca-certificate.
--certificate.
--dht-file-path.
--dht-file-path6.
--dir.
--input-file.
--load-cookies.
--log.
--metalink-file.
--netrc-path.
--on-bt-download-complete.
--on-download-complete.
--on-download-error.
--on-download-start.
--on-download-stop.
--on-download_pause.
--out.
--private-key.
--rpc-certificate.
--rpc-private-key.
--save-cookies.
--save-session.
--server-stat-if.
--server-stat-of.
--torrent-file.
Document that libaria2 is not thread safe.
GH-775.
.
Configure: Use pkg-config to find libs whenever possible.
Use pkg-config to find cppunit, libxml2 and expat. All those.
Libraries provide pkg-config files, and in all of those cases the
Pkg-config macro is superior to the custom macros used currently.
The advantages of pkg-config files include:
Explicit static linking support via --static. Currently, e.g.
'xml2-config --libs' prints all libraries needed for static.
Linking when doing dynamic linking unnecessary, resulting in
Unnecessary direct deps.
Better cross-build support. You don't have to build the additional
*-config tools for tar
1.29.016 Nov 2016 14:25
minor feature:
WinTLS: busy loop on write error
GH-767.
.
Support 1xx non-final response.
GH-763.
.
Update wslay.
GH-764.
.
Don't download piece which is filtered out (e.g., --select-file).
This commit the that piece which is not requested by.
--select-file is downloaded in multi-file Web-Seeding.
GH-769.
1.28.018 Oct 2016 00:25
minor feature:
Restore LTLIBINTL in src/Makefile.am
Patch from Juan Francisco Cantero Hurtado.
.
Add --keep-unfinished-download-result option.
This option keeps unfinished download results even if doing so.
Exceeds --max-download-result. This is useful if all unfinished
Downloads must be saved in session file (see --save-session option).
Please keep in mind that there is no upper bound to the number of
Unfinished download result to keep. This option is enabled by
Default.
.
-Wexpansion-to-defined warning with clang-3.9.
The error message was:
Warning: macro expansion producing 'defined' has undefined behavior.
-Wexpansion-to-defined .
Http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160118/147239.html.
.
That file name is not logged with --conditional-get.
GH-742.
1.27.118 Sep 2016 00:45
minor feature:
Add missing libssl_compat.h to SRCS
GH-744.
1.26.130 Aug 2016 02:45
minor feature:
Make assertion hold
If we have peer which is already used, make addAndCheckoutPeer().
Fail. If peer is in unused list, first remove the old entry, and
Then add new one. This would make assertion in DefaultPeerStorage
Hold.
1.26.021 Aug 2016 00:25
minor feature:
aria2mon: Replace client.call with local method
Patch from Florian Gamböck.
.
Reorder a note section in aria2c.rst.
Patch from Artur Petrov.
GH-722.
.
bash_completion: Add missing options which takes one of pre-defined
values.
Replace "/" with "-" in magnet dn name when used as in-memory
download name.
Dockerfile.raspberrypi to correctly decompress expat archive.
Patch from Char.
.
Enable ccache in travis-ci.
Speeds up the build most of the time.
GH-710.
.
Enable OSX/macOS build for travis.
GH-711.
GH-666
.
Better auto-renaming.
Up until now aria2 file auto renaming worked by just appending a new.
unique number to the file path, behind the file name extension, if
any, changing what most other programs consider the file extension
in the process. Now, aria2 will attempt to insert the number before
the file extension, leaving the extension intact, so that e.g. a
".jpg" still is a ".jpg" file and opens in your configured image.
viewer when clicking it. If a file has no extension (incl. so
called "dot files"), the number will be appended to the file name as
usual.
Note: This is a potentially breaking change that might break third.
party scripts that rely on aria2 auto file renaming producing a
certain format for renamed files. Please your scripts
accordingly.
GH-709.
.
Log number of items loaded from input file.
Link external libraries to libaria2 with --enable-libaria2.
GH-707.
.
Allow seconds for seed-time (fractional minutes).
Patch from Sébastien Cabaniols.
GH-704.
1.25.017 Jul 2016 03:19
minor feature:
Update third-party libraries for binary releases.
Send have message without too much delay.
Also send bitfield rather than have messages if bitfield message is.
equal to or less than the sum of have messages which otherwise would
be sent.
.
that causes bogus EOF connection failure in BitTorrent
downloads.
frequent interested/not interested message transmission.
frequent choke/unchoke message transmission.
Try to use available URI if all pooled requests are sleeping.
Update expat in OSX build.
GH-694.
.
aria2mon: Add --secret option.
GH-700.
.
Set server status error on network failure in server performance
profile.
Disable AI_ADDRCONFIG if no IPv4/IPv6 address is configured for any.
interface
GH-698.
.
Russian manual: Update aria2c.rst.
Patch from ITriskTI.
.
Apply --retry-wait on 503 only.
Ensure that lowest speed check is done even when download speed is 0.
GH-686.
.
Document that -o is always relative to -d option.
GH-684.
.
Allow larger ut_metadata size.
GH-681.
.
mingw: Change FD_SETSIZE to 32768.
GH-678.
.
compile error on OS X.
GH-683.
1.24.017 Jun 2016 14:45
minor feature:
BitTorrent: Allow 32KiB request
It looks like the 32KiB is the default request size of python.
Bittorrent client. Previously, aria2 only allowed maximum 16KiB
Request.
.
Don't unchoke peer which is not interested in us.
That evaluation of Peer::amChoking is negated.
Faster seed/download on fast connection.
Increase DHT task concurrency to 15.
GH-653.
.
Mmap failure check with MAP_FAILED flag.
GH-662.
Patch from suzker.
.
Added file size overflow check for mmap on 32bit os.
GH-662.
Patch from suzker.
.
Use standard percent-encode for tracker request query.
GH-659.
.
Mingw32: Gain privilege before opening files.
GH-657.
.
Restart active download to apply previously not applicable options.
Previously, we categorized options that can be used in.
Aria2.changeOption RPC method into 2 categories. The options in one
Category can be applied on the fly, meaning that download continues
to be active while applying options. Another category includes
Options which are only applicable when downloads are waiting or
Paused.
In this change, when active download is ordered to change options.
Which only applicable in waiting or paused state, it is now paused,
And then automatically restarted. Although we have limited number
of download concurrency, the pause and restart is done atomically,
And the download is inserted at the front of the queue, it is picked
up immediately if the concurrency regulation allows.
GH-640 and GH-644.
1.23.016 May 2016 15:05
minor feature:
Simplify cache write
The previous cache write routine was too complex. I'm sure I can.
rewrite it to more elegantly. But the primary motivation of this
complex logic is for disk activity reduction on Windows 7, and I
observed it on my old IDE disk. I checked it again recently, and
there is no difference between with and without this complex logic.
For this reason, it was removed. Will revert this change if many of
users are not happy with this.
.
Allow subsecond value in ns cookie.txt file's expiry time field.
GH-655.
.
Adjust chromium cookie time.
import-po: iterate on glob, not ls output.
Patch from Mingye Wang.
.
Add --stderr option to redirect all stdout log output to stderr.
GH-638.
.
Add "hide" to --download-result option.
GH-639.
.
downloaded metaurl torrent filename.
Add a little bit of color to have a better visual of important.
informations
Patch from rotor.
.
Update README URLs based on HTTP redirects.
Patch from ReadmeCritic.
.
Relocate from github.com/tatsuhiro-t/aria2 to github.com/aria2/aria2.
GH-602.
.
mingw: Defer the falloc warning until falloc is specified by option.
GH-594.
.
Add bittorrent key to aria2.tellStopped status.
GH-612.
.
Addsystem.listNotifications RPC method.
Merges GH-620.
Patch from Sonny Piers.
.
Report CheckIntegrity info in tellStatus.
Adds verifiedLength to tellStatus. Reports the length of data that.
has been verified of the current RequestGroup being verified.
Adds verifyPending to tellStatus. Reports if the RequestGroup has
a verification of integrity pending.
GH-561
Patch from Kurt Kartaltepe.
.
Adds verifiedLength to tellStatus. Reports the length of data that
has been verified of the current RequestGroup being verified.
Adds verifyPending to tellStatus. Reports if the RequestGroup has
a verification of integrity pending.
1.22.017 Apr 2016 18:33
major feature:
Add description about possible fragmentation with --file-allocation=trunc. Make single-entry metalink download with multi-file torrent work. Add all contributor's names in AUTHORS. Ignore floating number in torrent file. Added support for a dynamic management of the number of concurrent. downloads as a function of the overall bandwidth observed This change adds --optimize-concurrent-downloads option. Patch from oliviercommelarbre. . Add --stream-piece-selector=random.