aria2

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

GPL-2.0 License

Stars
33.5K
Committers
73

Bot releases are hidden (Show)

aria2 - aria2 1.37.0 Latest Release

Published by tatsuhiro-t 11 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/aria2/aria2/compare/release-1.36.0...release-1.37.0

aria2 - aria2 1.36.0

Published by tatsuhiro-t about 3 years ago

Release Note

This release fixes several bugs. See Changes for details.

Changes

  • Update wslay

  • Bump Windows build dependencies

  • Bump android build dependencies

  • Fix 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

aria2 - aria2 1.35.0

Published by tatsuhiro-t about 5 years ago

Release Note

This release fixes several bugs. See Changes for details.

Changes

  • 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: Fix 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: Fix bug that commonName is always empty

    GH-1214

  • Fix openssl API version logic for libressl 2.7.x

    Patch from Ben Chaney

    GH-1213

  • Fix build failure when InternalDHKeyExchange is used

aria2 - aria2 1.34.0

Published by tatsuhiro-t over 6 years ago

Release Note

This release fixes several bugs. See Changes for details.

Changes

  • 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: fix 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)

  • Fix bug that signal handler does not work with libaria2

    This commit fixes the bug 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

aria2 - aria2 1.33.1

Published by tatsuhiro-t almost 7 years ago

Release Note

This release fixes a bug that causes high CPU usage in mingw build.

Changes

  • mingw: Fix high CPU usage in BitTorrent downloads

    This commit fixes high CPU usage in BitTorrent downloads. Only
    mingw build is affected by this bug.

    Thank you kwkam for identifying the cause of the issue, and helping
    debugging this patch.

aria2 - aria2 1.33.0

Published by tatsuhiro-t about 7 years ago

Release Note

This release fixes several bugs, and add new features.

Changes

  • Include arm in a filename of android zip

  • Upgrade base image of Dockerfile.mingw to ubuntu:16.04

  • wintls: Potential fix 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.

    Fixes GH-969
    Fixes 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] Fix 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<std::string,
    std::string>, 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

  • Fix regression in bfc54d0b9a694e5d87efd8ed11b5393bc4b66f93

    Don't save control file if --auto-save-interval is 0.

    GH-917

  • Fix infinite loop bug when file is not found

aria2 - aria2 1.32.0

Published by tatsuhiro-t over 7 years ago

Release Note

This release fixes several minor bugs, and spelling mistakes.

Changes

  • Clarify --max-concurrent-downloads option

    GH-833

  • Fix compile error with toolchain which lacks IPV6_TCLASS

    GH-895

  • Log directed URI in notice log level

    GH-884

  • Fix typo

    Patch from Tse Kit Yam

    GH-879, GH-899

  • Spelling fixes

    Patch from klemens

    GH-870

  • Remove unused Android parts

    These parts where unused after merging
    https://github.com/aria2/aria2/pull/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 fixes 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

aria2 - aria2 1.31.0

Published by tatsuhiro-t almost 8 years ago

Release Note

This release fixes assertion error in
SimpleRandomizer::getRandomBytes. It adds new option
content-disposition-default-utf8.

Changes

  • Better error message when local file status cannot be retrieved

    GH-836

  • Fix 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

aria2 - aria2 1.30.0

Published by tatsuhiro-t almost 8 years ago

Release Note

This release fixes several bugs. See Changes below for detailed bug
fixes. This release adds an ability to expand ${HOME} to user's
home directory in several options. It would be useful when used in
configuration file. -S option against torrent file now prints out DHT
nodes.

Changes

  • mingw: Use sqlite 3.15.2

  • Fix bug that --disable-websocket causes build error

  • Fix bug 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

  • 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 target.
    • Better multilib support. Per-ABI pkgconfig directories are
      commonly supported while packages usually fail to look for
      per-CHOST *-config variants.
    • Better override support. The current macros allow little to no
      result overrides, the pkg-config macros let you pass FOO_CFLAGS
      and FOO_LIBS manually.
    • Cleaner version checks. The code used in libxml.m4 is really
      creepy.

    Patch from Michał Górny

    GH-773

  • WinTLS: Rewrite writeData

    We re-wrote WinTLSSession::writeData. The major points are:

    • Buffer is now preallocated once handshake is finished.
      Previously, they are allocated each time when we send one TLS
      record.
    • Schannel uses header, body and trailer for each secBuffer. Now we
      send them off at once using WSASend which is windows counterpart
      of sendv. Previously, we do memmove if some of them are
      truncated.
    • We don't try to send application data in
      WinTLSSession::closeConnection, since semantically we need same
      application data used to create TLS record before. Using 0 length
      data to finish sending buffered data looks like a hack.

    GH-772

aria2 - aria2 1.29.0

Published by tatsuhiro-t almost 8 years ago

Release Note

This release fixes several bugs. See Changes below for detailed bug
fixes. This release adds 1xx non-final response support. Wslay
library is updated to the latest revision.

Changes

  • WinTLS: Fix 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 fixes the bug that piece which is not requested by
    --select-file is downloaded in multi-file Web-Seeding.

    GH-769

aria2 - aria2 1.28.0

Published by tatsuhiro-t about 8 years ago

Release Note

This release fixes the bug that file name is not logged with
--conditional-get option is used. The new option
--keep-unfinished-download-result was added to keep incomplete
downloads in memory regardless of --max-download-result so that we can
save those downloads with --save-session option. This option is
enabled by default.

This release

Changes

  • 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.

  • Fix -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

  • Fix bug that file name is not logged with --conditional-get

    GH-742

aria2 - aria2 1.27.1

Published by tatsuhiro-t about 8 years ago

Release Note

This release fixes the packaging bug that libssl_compat.h is missing
in the tar balls.

Changes

  • Add missing libssl_compat.h to SRCS

    GH-744

aria2 - aria2 1.27.0

Published by tatsuhiro-t about 8 years ago

Release Note

This release fixes bug which may cause crash if UDP tracker is used.
It adds new option --save-not-found which prevents downloads failed by
"not found" error from being saved in session file.

Changes

  • Hard-disable openssl in osx build

    Closes #739

  • Fix possible cause of crash if UDP tracker is used

  • Remove custom ftruncate64 for Android

    The latest NDK versions support ftruncate64, so building a local
    copy of ftruncate64 is no longer needed.

    Also, the arm and x86 builds of ftruncate64 failed when targeting
    API level 21 or higher, as they include <linux/err.h> which are not
    present starting from API level 21.

    Patch from Fredrik Fornwall

  • Fix typo found by Debian's Lintian

  • Add --save-not-found option

  • Update comment to match code

    Patch from Torbjörn Lönnemark

  • WinTLS: Better errors (from WSA)

  • Compile with openssl 1.1.0

aria2 - aria2 1.26.1

Published by tatsuhiro-t about 8 years ago

Release Note

This release fixes the bug that causes assertion failure during
BitTorrent downloads.

Changes

  • 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.

aria2 - aria2 1.26.0

Published by tatsuhiro-t about 8 years ago

Release Note

This release fixes linking bug with libaria2 enabled. It also changes
how aria2 renames the download file name when the same name already
exists in file system. In summary, we use numbers before extension
(e.g., foo.1.txt), rather than after extension (e.g., foo.txt.1). Now
--seed-time option can take floating point number to specify
fractional minutes.

Changes

  • aria2mon: Replace client.call with local method

    Patch from Florian Gamböck

  • Reorder a note section in aria2c.rst

    Patch from Artur Petrov

    Closes 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

  • Fix Dockerfile.raspberrypi to correctly decompress expat archive

    Patch from Char

  • Enable ccache in travis-ci

    Speeds up the build most of the time.

    Closes GH-710

  • Enable OSX/macOS build for travis

    Closes GH-711
    Closes 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 fix your scripts
    accordingly.

    Closes GH-709

  • Log number of items loaded from input file

  • Link external libraries to libaria2 with --enable-libaria2

    Fixes GH-707

  • Allow seconds for seed-time (fractional minutes)

    Patch from Sébastien Cabaniols

    Closes GH-704

aria2 - aria2 1.25.0

Published by tatsuhiro-t over 8 years ago

Release Note

This release fixes many bugs reported so far. There is no new
functionality in this release. We have fixed many performance issues
in BitTorrent downloads.

Changes

  • 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.

  • Fix bug that causes bogus EOF connection failure in BitTorrent
    downloads

  • Fix frequent interested/not interested message transmission

  • Fix frequent choke/unchoke message transmission

  • Try to use available URI if all pooled requests are sleeping

  • Update expat in OSX build

    Closes GH-694

  • aria2mon: Add --secret option

    Fixes 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

    Fixes 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

    Fixes GH-686

  • Document that -o is always relative to -d option

    Fixes GH-684

  • Allow larger ut_metadata size

    Fixes GH-681

  • mingw: Change FD_SETSIZE to 32768

    Fixes GH-678

  • Fix compile error on OS X

    Fixes GH-683

aria2 - aria2 1.24.0

Published by tatsuhiro-t over 8 years ago

Release Note

This release fixes several bugs. The new functionality is that when
options which is only applicable in waiting state are submitted to an
active download via RPC, the download is now automatically restarted
to reflect the changes. Previously, those options were just ignored.

Changes

  • 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

  • Fix bug that evaluation of Peer::amChoking is negated

  • Faster seed/download on fast connection

  • Increase DHT task concurrency to 15

    Fix GH-653

  • Fixed mmap failure check with MAP_FAILED flag

    Fix GH-662

    Patch from suzker

  • Added file size overflow check for mmap on 32bit os

    Fix GH-662

    Patch from suzker

  • Use standard percent-encode for tracker request query

    Fix GH-659

  • mingw32: Gain privilege before opening files

    Fix 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.

    Fix GH-640 and GH-644

aria2 - aria2 1.23.0

Published by tatsuhiro-t over 8 years ago

aria2 1.23.0

Release Note

This release fixes several bugs reported by users, and adds several
new features. Read the following section for details.

Changes

  • 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

    Fixes 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

    Fixes GH-638

  • Add "hide" to --download-result option

    Fixes GH-639

  • Fix 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

    Fixes GH-602

  • mingw: Defer the falloc warning until falloc is specified by option

    Fixes GH-594

  • Add bittorrent key to aria2.tellStopped status

    Fixes 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.

    Closes GH-561

    Patch from Kurt Kartaltepe

aria2 - aria2 1.22.0

Published by tatsuhiro-t over 8 years ago

Release Note

This release adds new feature that manages the number of concurrent
downloads dynamically. --stream-piece-selector option gets new value
"random" which randomizes the piece selection for HTTP/FTP downloads.
This effectively randomizes the order of files on multi-file Web
Seeding. Now all contributor's names are in AUTHORS file.
Previously, aria2 shows error when it sees floating point number in a
torrent file because torrent file specification does not allow
floating point number. In this release, they are just ignored, and
aria2 continues to parse the rest of the torrent file as if there is
nothing wrong.

Changes

  • 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

aria2 - aria2 1.21.0

Published by tatsuhiro-t over 8 years ago

Release Note

This release fixes several bugs, see the Changes for details. We
added "following" key to the response of aria2.tellStatus RPC method
as reverse link for followedBy.

Changes

  • SessionSerializer: Fix bug that pause=true is added to wrong item

    This change also defers writing metadata download to the location
    where first its follower download is written.

  • Add "following" to aria2.tellStatus response key as reverse link for
    followedBy

  • mingw: Add warning for falloc

  • Update ciphers in AppleTLS

    Also enable fast start while at it

  • OSX: Enable libssh2 and sftp

    Closes GH-468

  • Update OSX dependencies

    Closes GH-466

  • Fix compile error without TLS support

  • Add support for using gnutls system wide crypto policy

    Patch from Athmane Madjoudj