Axel is a lightweight CLI download accelerator. While its more powerful alternative, aria2, offers a wider range of features, Axel is significantly easier to use when the goal is just download acceleration. However, Axel is originally written using POSIX APIs, which makes it incompatible with Windows. This repository provides a version of Axel that works on Windows.
Porting POSIX-based code to Windows typically involves removing all POSIX dependencies (e.g., arpa/inet.h
) and rewriting them using Windows-native APIs. However, since Axel relies heavily on POSIX for its functionality, this would essentially require a complete rewrite. Instead, we use MSYS2 to allow minimal code modifications while enabling Axel to run on Windows.
You may simply use pre-built releases provided in this repository. However, you should still follow this to use this on native Windows environment with SSL verification support.
-
Install MSYS2
If you haven’t already, install MSYS2 from https://www.msys2.org. -
Open MSYS shell
You must run the MSYS environment, not UCRT or MINGW shells, because only the MSYS environment supports the necessary POSIX APIs. -
Install required packages
Run the following command in the MSYS shell:pacman -S gcc autotools autoconf-archive gettext-devel pkg-config openssl-devel
-
Clone this repository
git clone https://github.com/uklee/axel-for-windows.git cd axel-for-windows
-
Build Axel
autoreconf -i ./configure make
-
The
axel.exe
binary should now be available for use.
Although you can use the built axel.exe
inside the MSYS environment, with a few additional steps you can run it directly from native Windows.
-
Create a folder and copy the following files into it:
axel.exe msys64/usr/bin/msys-2.0.dll msys64/usr/bin/msys-crypto-3.dll msys64/usr/bin/msys-ssl-3.dll
-
Obtain an SSL certificate file
To enable OpenSSL's certificate verification, copycert.pem
from:msys64/usr/ssl/cert.pem
, ordownload from https://curl.se/docs/caextract.html.
-
Set the environment variable
Add the following to your Windows environment variables:SSL_CERT_FILE=<path-to-cert.pem>
-
Run Axel
You can now runaxel.exe
from that folder or add the folder to your%PATH%
to use it system-wide.