Skip to content
rewget GitHub

← 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.