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!