• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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