remozipsy 0.2.0

Remote Zip Sync - sync remote zip to local fs
Documentation
//! This crate enables you to sync the content from a remote zip file to a
//! local filesystem, WITHOUT fetching the entire file.
//!
//! ## Usage
//!
//! See [example: sync_remote_zip](/examples/sync_remote_zip.rs)
//! ```no_run
//! use remozipsy::{Config, Statemachine, reqwest::ReqwestRemoteZip, tokio::TokioLocalStorage};
//!
//! #[tokio::main(flavor = "current_thread")]
//! pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     let remote =
//!         ReqwestRemoteZip::with_url("https://getsamplefiles.com/download/zip/sample-1.zip")?;
//!     let local = TokioLocalStorage::new("./extract".into(), Vec::new());
//!     let mut state = Statemachine::new(remote, local, Config::default());
//!
//!     while let Some((progress, next_state)) = state.progress().await {
//!         state = next_state;
//!         println!("Progress: {progress:?}");
//!         tokio::task::yield_now().await;
//!     }
//!     Ok(())
//! }
//! ```

mod model;
mod proto;
#[cfg(feature = "reqwest")] pub mod reqwest;
#[cfg(feature = "tokio")] pub mod tokio;

pub use model::{Config, Error, FileInfo, Progress, ProgressDetails, RemoteFileInfo};
pub use proto::{
    FileSystem, RemoteFetchError, RemoteZip, Statemachine, calculate_local_unix_path, fetch_remote_file_info,
};