//! A library for reading and writing ZIP archives. //! ZIP is a format designed for cross-platform file "archiving". //! That is, storing a collection of files in a single datastream //! to make them easier to share between computers. //! Additionally, ZIP is able to compress and encrypt files in its //! archives. //! //! The current implementation is based on [PKWARE's APPNOTE.TXT v6.3.9](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) //! //! --- //! //! [`zip`](`crate`) has support for the most common ZIP archives found in common use. //! However, in special cases, //! there are some zip archives that are difficult to read or write. //! //! This is a list of supported features: //! //! | | Reading | Writing | //! | ------- | ------ | ------- | //! | Deflate | ✅ [->](`crate::ZipArchive::by_name`) | ✅ [->](`crate::write::FileOptions::compression_method`) | //! //! //! #![warn(missing_docs)] pub use crate::compression::{CompressionMethod, SUPPORTED_COMPRESSION_METHODS}; pub use crate::read::ZipArchive; pub use crate::types::DateTime; pub use crate::write::ZipWriter; #[cfg(feature = "aes-crypto")] mod aes; #[cfg(feature = "aes-crypto")] mod aes_ctr; mod compression; mod cp437; mod crc32; pub mod read; pub mod result; mod spec; mod types; pub mod write; mod zipcrypto; /// Unstable APIs /// /// All APIs accessible by importing this module are unstable; They may be changed in patch releases. /// You MUST you an exact version specifier in `Cargo.toml`, to indicate the version of this API you're using: /// /// ```toml /// [dependencies] /// zip = "=0.6.6" /// ``` pub mod unstable;