Compare curl with other download tools
This comparison only involves entirely free and open source software.
Feature | curl | snarf | wget | wget2 | pavuk | fget | fetch | lftp | aria2 | HTTrack | HTTPie |
---|---|---|---|---|---|---|---|---|---|---|---|
.netrc | yes | no | yes | yes | no | no | yes | yes | yes | no | yes |
Bandwidth Limiting | yes | no | yes | yes | yes | no | no | yes | yes | yes | no |
Commercial support | yes | no | no | no | no | no | no | no | no | no | no |
DNS-over-HTTPS | yes | no | no | no | no | no | no | no | no | no | no |
FTP 3rd Party Transfer | no | no | no | no | no | no | no | yes | no | no | no |
FTP Active Mode | yes | yes | yes | yes | yes | no | yes | yes | yes | no | no |
FTP Connection Re-use | yes | no | no | no | yes | no | yes | yes | yes | no | no |
FTP Kerberos | yes | no | no | no | no | no | no | no | no | no | no |
FTP Ranges | yes | no | no | no | no | no | no | no | no | no | no |
FTP Resume | yes | yes | yes | yes | yes | no | yes | yes | yes | no | no |
FTP Upload | yes | no | no | no | no | no | no | yes | no | no | no |
FTPS | yes | no | no | no | yes | no | no | yes | no | no | no |
GOPHER | yes | yes | no | no | yes | no | no | yes | no | no | no |
Happy Eyeballs | yes | no | no | no | no | no | no | no | no | no | no |
HSTS | yes* | no | yes | yes | no | no | no | no | no | no | no |
HTTP alt-svc | yes | no | no | no | no | no | no | no | no | no | no |
HTTP brotli | yes | no | no | yes | no | no | no | no | no | no | no |
HTTP Cookies | yes | no | yes | yes | yes | no | no | yes | yes | yes | yes |
HTTP Digest Auth | yes | no | yes | yes | yes | no | yes | no | no | no | yes |
HTTP etags | yes | no | no | no | no | no | no | no | no | no | no |
HTTP gzip | yes | no | no | yes | yes | no | no | no | yes | yes | yes |
HTTP Multipart POST | yes | no | no | no | yes | no | no | no | no | no | no |
HTTP Negotiate Auth | yes | no | no | no | no | no | no | no | no | no | yes |
HTTP NTLM Auth | yes | no | yes | yes | yes | no | no | no | no | no | yes |
HTTP Persistent Conns | yes | no | yes | yes | yes | no | no | yes | yes | no | no |
HTTP POST | yes | no | yes | yes | yes | no | no | yes | no | no | yes |
HTTP POST Chunked | yes | no | no | no | no | no | no | no | no | no | no |
HTTP Proxy | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
HTTP PUT | yes | no | no | no | no | no | no | yes | no | no | no |
HTTP Ranges | yes | no | no | no | no | no | no | no | no | no | no |
HTTP Redirects | yes | yes | yes | yes | yes | no | yes | no | yes | no | yes |
HTTP Resume | yes | yes | yes | yes | yes | no | yes | yes | yes | no | yes |
HTTP time conditions | yes | no | yes | yes | no | no | no | no | no | no | no |
HTTP zstd | yes | no | no | yes | no | no | no | no | no | no | no |
HTTP/1.1 | yes | no | yes | yes | yes | no | yes | yes | yes | yes | yes |
HTTP/2 ALPN | yes | no | no | yes | no | no | no | no | no | no | no |
HTTP/2 h2c upgrade | yes | no | no | yes | no | no | no | no | no | no | no |
HTTP/2 NPN | yes | no | no | no | no | no | no | no | no | no | no |
HTTP/3 | yes | no | no | no | no | no | no | no | no | no | no |
HTTPS | yes | no | yes | yes | yes | no | yes | yes | yes | yes | yes |
HTTPS Proxy | yes | no | no | no | no | no | no | no | no | no | no |
IDN hostnames | yes | no | yes | yes | no | no | no | no | no | no | yes |
IMAP | yes | no | no | no | no | no | no | no | no | no | no |
IPv6 | yes | no | yes | yes | yes | yes | yes | yes | yes* | yes | yes |
LDAP | yes | no | no | no | no | no | no | no | no | no | no |
Metalink | yes | no | yes | yes | no | no | no | no | yes | no | no |
MQTT | yes | no | no | no | no | no | no | no | no | no | no |
Multilingual Messages | no | no | yes | yes | yes | no | no | yes | yes | no | no |
Multiple URLs | yes | yes | yes | yes | yes | no | yes | no | yes | no | no |
Parallel transfers | yes | no | no | no | yes | no | no | yes | yes | yes | no |
POP3 | yes | no | no | no | no | no | no | no | no | no | no |
Recursive downloads | no | no | yes | yes | yes | no | no | yes | no | yes | no |
Retry failed downloads | yes | no | yes | yes | yes | no | yes | yes | yes | yes | no |
RTMP | yes | no | no | no | no | no | no | no | no | no | no |
RTSP | yes | no | no | no | no | no | no | no | no | no | no |
Same file multi connect | no | no | no | yes | no | no | no | no | yes | no | no |
SCP | yes | no | no | no | no | no | no | no | no | no | no |
SFTP | yes | no | no | no | no | no | no | yes | no | no | no |
SMB | yes | no | no | no | no | no | no | no | no | no | no |
SMTP | yes | no | no | no | no | no | no | no | no | no | no |
SOCKS proxy | yes | yes | no | no | yes | no | no | yes | no | no | yes |
TELNET | yes | no | no | no | no | no | no | no | no | no | no |
TFTP | yes | no | no | no | no | no | no | no | no | no | no |
Tiny Executable | no | yes | no | no | no | yes | yes | no | no | no | no |
TLS: BearSSL | yes | no | no | no | no | no | no | no | no | no | no |
TLS: Client certs | yes | no | yes | yes | no | no | no | no | no | no | no |
TLS: GnuTLS | yes | no | yes | yes | no | no | no | yes | yes | no | yes* |
TLS: mbedTLS | yes | no | no | no | no | no | no | no | no | no | no |
TLS: MesaLink | yes | no | no | no | no | no | no | no | no | no | no |
TLS: NSS | yes | no | no | no | no | no | no | no | no | no | no |
TLS: Schannel | yes | no | no | no | no | no | no | no | no | no | yes* |
TLS: Secure Transport | yes | no | no | no | no | no | no | no | no | no | yes* |
TLS: Session ID cache | yes | no | no | yes | no | no | no | no | no | no | no |
TLS: WolfSSL | yes | no | no | no | no | no | no | no | no | no | no |
URL globbing/sequences | yes | no | yes | yes | yes | no | no | no | yes | no | no |
Username/Password | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
Windows Port | yes | no | yes | yes | no | no | no | no | yes | yes | yes* |
License | MIT | GPL | GPL | GPL | GPL | ? | BSD | GPL | GPL | GPL | BSD |
Version | 7.74.0 | 7.0 | 1.17 | ? | 0.9.34 | 0.4.1 | 4.7 | 3.5.0 | 1.8.3 | 3.43 | 1.0.2 |
The mentioned tools: snarf, wget, wget2, pavuk, fget, lftp, aria2, httrack, HTTPie
'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
* HSTS is "experimental" in >= curl 7.74.0
Please file a bug report if this table is incorrect, or tell us other features we should compare!