2 stable releases
1.1.0 | Aug 13, 2022 |
---|---|
1.0.0 | Aug 12, 2022 |
#1646 in Filesystem
12KB
186 lines
passionfruit
A Rust library to fetch files off of the interwebs and optionally download them.
In short, a reqwest
interface.
Example
Similarly to reqwest
, this example uses the module tokio
to make the fn main()
asynchronous:
use tokio;
use directories;
use passionfruit;
#[tokio::main]
async fn main() {
match passionfruit::Download::new("https://i.imgur.com/ISfpRae.jpeg").start().await {
Ok(result) => {
if let Ok(_) = result.write_to(
directories::UserDirs::new()
.unwrap()
.desktop_dir()
.unwrap()
.to_str()
.unwrap()
.to_string(),
"lol".to_string()
) {
println!("Download completed!")
}
}
Err(why) => panic!("It appears something went wrong: {}", why)
}
}
An example which doesn't use tokio
but instead futures
:
use futures;
use directories;
use passionfruit;
fn main() {
let download = futures::executor::block_on(
passionfruit::Download::new("https://i.imgur.com/8iiChzd.jpeg").start(),
);
match download {
Ok(result) => {
if let Some(dirs) = directories::UserDirs::new() {
result.write_to(
dirs.document_dir()
.unwrap()
.to_str()
.unwrap()
.to_string(),
"out".to_string()
).unwrap();
}
},
Err(why) => panic!("An error occured: {}", why)
}
}
Dependencies
~14–30MB
~266K SLoC