Compare curl with other download tools
This comparison only involves entirely free and open source software.
Feature | curl | wget | wget2 | fetch | lftp | aria2 | HTTrack | HTTPie | xh |
---|---|---|---|---|---|---|---|---|---|
.netrc | yes | yes | yes | yes | yes | yes | no | yes | yes |
Bandwidth Limiting | yes | yes | yes | no | yes | yes | yes | no | no |
Commercial support | yes | no | no | no | no | no | no | no | no |
DNS-over-HTTPS | yes | no | no | no | no | no | no | no | no |
FTP 3rd Party Transfer | no | no | no | no | yes | no | no | no | no |
FTP Active Mode | yes | yes | yes | yes | yes | yes | no | no | no |
FTP Connection Re-use | yes | no | no | yes | yes | yes | no | no | no |
FTP Kerberos | yes | no | no | no | no | no | no | no | no |
FTP Ranges | yes | no | no | no | no | no | no | no | no |
FTP Resume | yes | yes | yes | yes | yes | yes | no | no | no |
FTP Upload | yes | no | no | no | yes | no | no | no | no |
FTPS | yes | no | no | no | yes | no | no | no | no |
GOPHER | yes | no | no | no | yes | no | no | no | no |
GOPHERS | yes | no | no | no | no | no | no | no | no |
H2/H3 Happy Eyeballs | yes | no | no | no | no | no | no | no | no |
Happy Eyeballs | yes | no | no | no | no | no | no | no | no |
HSTS | yes | yes | yes | no | no | no | no | no | no |
HTTP alt-svc | yes | no | no | no | no | no | no | no | no |
HTTP brotli | yes | no | yes | no | no | no | no | no | yes |
HTTP Cookies | yes | yes | yes | no | yes | yes | yes | yes | yes |
HTTP Digest Auth | yes | yes | yes | yes | no | no | no | yes | yes |
HTTP etags | yes | no | no | no | no | no | no | no | no |
HTTP gzip | yes | no | yes | no | no | yes | yes | yes | yes |
HTTP Multipart POST | yes | no | no | no | no | no | no | yes | yes |
HTTP Negotiate Auth | yes | no | no | no | no | no | no | yes | no |
HTTP NTLM Auth | yes | yes | yes | no | no | no | no | yes | no |
HTTP Persistent Conns | yes | yes | yes | no | yes | yes | no | no | no |
HTTP POST | yes | yes | yes | no | yes | no | no | yes | yes |
HTTP POST Chunked | yes | no | no | no | no | no | no | no | no |
HTTP Proxy | yes | yes | yes | yes | yes | yes | yes | yes | yes |
HTTP PUT | yes | no | no | no | yes | no | no | no | yes |
HTTP Ranges | yes | no | no | no | no | no | no | no | no |
HTTP Redirects | yes | yes | yes | yes | no | yes | no | yes | yes |
HTTP Resume | yes | yes | yes | yes | yes | yes | no | yes | yes |
HTTP time conditions | yes | yes | yes | no | no | no | no | no | no |
HTTP zstd | yes | no | yes | no | no | no | no | no | no |
HTTP/1.1 | yes | yes | yes | yes | yes | yes | yes | yes | yes |
HTTP/2 ALPN | yes | no | yes | no | no | no | no | no | yes |
HTTP/2 h2c upgrade | yes | no | yes | no | no | no | no | no | no |
HTTP/2 to proxy | yes | no | no | no | no | no | no | no | no |
HTTP/3 | yes | no | no | no | no | no | no | no | no |
HTTPS | yes | yes | yes | yes | yes | yes | yes | yes | yes |
HTTPS Proxy | yes | no | no | no | no | no | no | no | yes |
IDN hostnames | yes | yes | yes | no | no | no | no | yes | no |
IMAP | yes | no | no | no | no | no | no | no | no |
In development | yes | yes | yes | no | no | yes | no | yes | yes |
IPv6 | yes | yes | yes | yes | yes | yes* | yes | yes | yes |
LDAP | yes | no | no | no | no | no | no | no | no |
library / API | yes | no | yes | no | no | no | no | no | no |
Metalink | no | yes | yes | no | no | yes | no | no | no |
MQTT | yes | no | no | no | no | no | no | no | no |
Multilingual Messages | no | yes | yes | no | yes | yes | no | no | no |
Multiple URLs | yes | yes | yes | yes | yes | yes | no | no | no |
Parallel transfers | yes | no | no | no | yes | yes | yes | no | no |
POP3 | yes | no | no | no | no | no | no | no | no |
Recursive downloads | no | yes | yes | no | yes | no | yes | no | no |
Retry failed downloads | yes | yes | yes | yes | yes | yes | yes | no | no |
RTMP | yes | no | no | no | no | no | no | no | no |
RTSP | yes | no | no | no | no | no | no | no | no |
Same file multi connect | no | no | yes | no | yes | yes | no | no | no |
SCP | yes | no | no | no | no | no | no | no | no |
SFTP | yes | no | no | no | yes | yes | no | no | no |
SMB | yes | no | no | no | no | no | no | no | no |
SMTP | yes | no | no | no | no | no | no | no | no |
SOCKS4 | yes | no | no | no | yes | no | no | no | no |
SOCKS5 | yes | no | no | no | yes | no | no | yes | no |
SOCKS5 proxy resolve | yes | no | no | no | no | no | no | no | no |
TELNET | yes | no | no | no | no | no | no | no | no |
TFTP | yes | no | no | no | no | no | no | no | no |
Tiny Executable | no | no | no | yes | no | no | no | no | no |
TLS: BearSSL | yes | no | no | no | no | no | no | no | no |
TLS: Client certs | yes | yes | yes | no | no | no | no | no | yes |
TLS: GnuTLS | yes | yes | yes | no | yes | yes | no | yes* | no |
TLS: mbedTLS | yes | no | no | no | no | no | no | no | no |
TLS: OpenSSL | yes | yes | no | yes | yes | yes | yes | yes | yes |
TLS: rustls | yes | no | no | no | no | no | no | no | yes |
TLS: Schannel | yes | no | no | no | no | no | no | yes* | no |
TLS: Secure Transport | yes | no | no | no | no | no | no | yes* | no |
TLS: Session ID cache | yes | no | yes | no | no | no | no | no | no |
TLS: WolfSSL | yes | no | yes | no | no | no | no | no | no |
Unix domain socket | yes | no | no | no | no | no | no | no | no |
URL globbing/sequences | yes | yes | yes | no | no | yes | no | no | no |
Username/Password | yes | yes | yes | yes | yes | yes | yes | yes | yes |
Windows Port | yes | yes | yes | no | no | yes | yes | yes* | yes |
WebSocket | yes | no | no | no | no | no | no | no | no |
License | MIT | GPL | GPL | BSD | GPL | GPL | GPL | BSD | MIT |
Version | 8.3.0 | 1.21 | 1.99.2 | 4.7 | 3.5.0 | 1.8.3 | 3.43 | 3.2.2 | 0.18.0 |
The mentioned tools: wget, wget2, lftp, aria2, httrack, HTTPie, xh
'Fetch' is an integral part of the FreeBSD operating system.
* aria2 supports IPv6 only in HTTP(S) download
* HTTPie is written in Python + Requests and thus carry their portability and features
"In development" - releases or new things done to the project within the last couple of years.
Please file a bug report if this table is incorrect, or tell us other features we should compare!