1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
//! Fast and simple async downloads //! //! Provides easy to use functions to download a file using multiple async connections //! while taking care to preserve integrity of the file and check it against a SHA256 sum //! //! This crate is a work in progress //! //! //! The crate exposes debug logs through the [`tracing`][tracing] crate //! //! ## Feature flags //! //! - `progress`: Enables progress reporting using `indicatif` //! - `rustls-tls`: Use rustls for Https connections, enabled by default //! - `native-tls`: Use native tls for Https connections //! //! //! ## Crate usage //! //! # Example //! //! ```no_run //! use manic::Downloader; //! #[tokio::main] //! async fn main() -> Result<(), manic::Error> { //! let number_of_concurrent_tasks: u8 = 5; //! let client = Downloader::new("https://crates.io", number_of_concurrent_tasks).await?; //! let result = client.download().await?; //! Ok(()) //! } //! ``` mod chunk; mod downloader; mod error; mod hash; pub use downloader::Downloader; pub use error::{Error, Result}; pub use hash::Hash; #[cfg(feature = "progress")] pub use indicatif::ProgressStyle; pub use reqwest::Client; pub use reqwest::Url;