zip_merge/
lib.rs

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#![cfg_attr(docsrs, feature(doc_cfg))]
27
28pub use crate::compression::{CompressionMethod, SUPPORTED_COMPRESSION_METHODS};
29pub use crate::read::ZipArchive;
30pub use crate::spec::ZIP64_BYTES_THR;
31pub use crate::types::DateTime;
32pub use crate::write::ZipWriter;
33
34#[cfg(feature = "aes-crypto")]
35mod aes;
36#[cfg(feature = "aes-crypto")]
37mod aes_ctr;
38mod compression;
39mod cp437;
40mod crc32;
41pub mod read;
42pub mod result;
43mod spec;
44mod types;
45pub mod write;
46mod zipcrypto;
47
48/// Unstable APIs
49///
50/// All APIs accessible by importing this module are unstable; They may be changed in patch releases.
51/// You MUST you an exact version specifier in `Cargo.toml`, to indicate the version of this API you're using:
52///
53/// ```toml
54/// [dependencies]
55/// zip = "=0.6.6"
56/// ```
57pub mod unstable;