Siwi Download is a downloader build on tokio and reqwest.
```rust use reqwest::header::{HeaderMap, HeaderValue, USERAGENT}; use siwidownload::{ download::{Download, DownloadOptions}, error::AnyResult, };
async fn main() -> AnyResult<()> { let url = "https://cdn.npm.taobao.org/dist/node/v14.15.4/node-v14.15.4.pkg"; let mut storagepath = std::env::currentdir()?; storagepath.push("storage"); let storagepath = storagepath.tostr().unwrap(); let mut options = DownloadOptions::default(); let mut headers = HeaderMap::new(); headers.insert(USERAGENT, HeaderValue::fromstr("Mozilla/5.0 (Macintosh; Intel Mac OS X 1120) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36")?); options .setheaders(headers) .setfilename("helloworld1.pkg") .setshowprogress(true);
let download = Download::new(storagepath); download.autocreatestoragepath().await?;
let report = download.download(url, options) .await?; println!("report {:#?}", report); Ok(()) }
```
```rust use siwidownload::download::Download; use siwidownload::download::DownloadOptions; use siwi_download::error::AnyResult;
async fn main() -> AnyResult<()> {
let args: Vec
if let Some(url) = args.get(1) { let mut options = DownloadOptions::default(); options.setshowprogress(true); let download = Download::new(storage_path); let report = download.download(url, options).await?; println!("{:?}", report); } Ok(()) }
```