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 | |
46 | /// Unstable APIs |
47 | /// |
48 | /// All APIs accessible by importing this module are unstable; They may be changed in patch releases. |
49 | /// You MUST you an exact version specifier in `Cargo.toml`, to indicate the version of this API you're using: |
50 | /// |
51 | /// ```toml |
52 | /// [dependencies] |
53 | /// zip = "=0.6.6" |
54 | /// ``` |
55 | pub mod unstable; |
56 | |