1 //! A library for reading and writing ZIP archives. 2 //! ZIP is a format designed for cross-platform file "archiving". 3 //! That is, storing a collection of files in a single datastream 4 //! to make them easier to share between computers. 5 //! Additionally, ZIP is able to compress and encrypt files in its 6 //! archives. 7 //! 8 //! The current implementation is based on [PKWARE's APPNOTE.TXT v6.3.9](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) 9 //! 10 //! --- 11 //! 12 //! [`zip`](`crate`) has support for the most common ZIP archives found in common use. 13 //! However, in special cases, 14 //! there are some zip archives that are difficult to read or write. 15 //! 16 //! This is a list of supported features: 17 //! 18 //! | | Reading | Writing | 19 //! | ------- | ------ | ------- | 20 //! | Deflate | ✅ [->](`crate::ZipArchive::by_name`) | ✅ [->](`crate::write::FileOptions::compression_method`) | 21 //! 22 //! 23 //! 24 25 #![warn(missing_docs)] 26 27 pub use crate::compression::{CompressionMethod, SUPPORTED_COMPRESSION_METHODS}; 28 pub use crate::read::ZipArchive; 29 pub use crate::types::DateTime; 30 pub use crate::write::ZipWriter; 31 32 #[cfg(feature = "aes-crypto")] 33 mod aes; 34 #[cfg(feature = "aes-crypto")] 35 mod aes_ctr; 36 mod compression; 37 mod cp437; 38 mod crc32; 39 pub mod read; 40 pub mod result; 41 mod spec; 42 mod types; 43 pub mod write; 44 mod zipcrypto; 45