remozipsy 0.0.2

zip implementation independent structs and helpers
Documentation
//! This crates enables it to sync the content from a remote zip file to a local
//! filesystem, WITHOUT fetching the whole zip.
//!
//! ## 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() {
//!     let remote = ReqwestRemoteZip::new(
//!         "remozipsy_demo".to_string(),
//!         "https://getsamplefiles.com/download/zip/sample-1.zip",
//!     )
//!     .unwrap();
//!     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;
//!     }
//! }
//! ```

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

pub use model::{Config, Error, FileInfo};
pub use proto::{FileSystem, RemoteZip, Statemachine, calculate_local_unix_path};