← Back home · Compare
rewget vs bare curl
libcurl-backed command-line transfer tool
rewget and bare curl solve different problems. curl is for one-shot HTTP requests with bodies and headers; rewget keeps the wget download surface and fixes the cases where it gets blocked. Use whichever shape matches the job.
| Feature | rewget | bare curl | Advantage |
|---|---|---|---|
| CLI shape | wget-style, download-oriented | curl-style, request-oriented | Comparable |
| Resumable downloads | Yes, native via stage 1 wget | Yes, via -C - (manual offsets) | rewget |
| Recursive downloads | Yes, native via stage 1 wget | Not natively (script needed) | rewget |
| Non-HTTP protocols | No | Many (SCP/SFTP/FTP/IMAP/SMTP/...) | bare curl |
| HTTP/2 support | Yes, in stage 2 via rquest | Yes, with --http2 | Comparable |
| HTTP/3 support | No | Yes, when built with HTTP/3 backend | bare curl |
| Browser TLS impersonation | First-class in stage 2 (rquest) | Not in upstream curl; available in curl-impersonate fork | rewget |
| Headless browser fallback | Stage 3 via chromiumoxide | No | rewget |
| Single static binary | CLI + on-demand daemon | Single binary | bare curl |
| License | MIT or Apache-2.0 (dual) | curl license (MIT-derivative) | Comparable |
| Platform matrix | Linux, macOS (per README badges) | Effectively every platform you have ever touched | bare curl |
| Right tool when site blocks scrapers | Yes — three-stage fallback handles it | No — fails with the block | rewget |
Pick rewget when
- ▸Your existing automation is wget-shaped and you do not want to rewrite it as curl pipelines
- ▸You want resumable, recursive downloads as first-class flags rather than scripts on top of curl
- ▸The site you are downloading from blocks plain HTTP clients but a browser works
- ▸You want the fallback path to be opaque to the caller — same CLI, same scripts, just succeeding more
Pick bare curl when
- ▸You are doing one-shot API calls with custom headers and bodies; curl is the right shape
- ▸You need protocols beyond HTTP (SCP, SFTP, IMAP, SMTP, ...) — curl speaks dozens, rewget does not
- ▸You need a single binary with no daemon component anywhere on the box
- ▸You are on a platform curl supports and rewget does not
Both, honestly.
Most production boxes have both wget and curl installed for a reason. rewget slots in next to them; alias wget=rewget for downloads, keep bare curl for the cases where it is the right shape.