shell-download
| crate | docs | version |
|---|---|---|
shell-download |
A zero-dependency Rust library for downloading a URL to a file by delegating to whatever download tools are available on the current system.
It hunts for (in order): curl, wget, pwsh/powershell, python3, then the
built-in tunnel (HTTP over TCP, HTTPS via OpenSSL / openssl s_client). You can still
force only the TCP or only the OpenSSL stack with [Downloader::Tcp] and
[Downloader::OpenSSL].
- The caller provides a target path.
- That file is unlinked before the request starts.
- The response body is written to that path (decompressed if the response is gzip).
- The request runs in a background thread and returns a cancellable handle.
When to use this crate
If you can afford the compile-time cost and binary size of a much
fuller-featured crate such as reqwest, that's probably a better choice. But if
you need a small, zero-dependency library for just downloading a file, and you'd
prefer not to add code to call into curl or wget or pwsh or whatever
happens to be installed on a random machine, this crate is a good choice.
Features
By default, these features are not enabled, making the crate zero-dependency.
url: Parse URLs using theurlcrate (adds a number of dependencies, but makes URL parsing more accurate).
Usage
use ;