rc-zip is a zip archive library with a focus on compatibility and correctness.
ArchiveReader is your first stop. It ensures we are dealing with a valid zip archive, and reads the central directory. It does not perform I/O itself, but rather, it is a state machine that asks for reads at specific offsets.
Writing archives is not implemented yet.
Prelude for rc-zip
An Archive contains general information about a zip files, along with a list of entries.
ArchiveReader parses a valid zip archive into an Archive. In particular, this struct finds an end of central directory record, parses the entire central directory, detects text encoding, and normalizes metadata.
Describes a zip archive entry (a file, a directory, a symlink)
Info-ZIP New Unix Extra Field:
4.5.5 -NTFS Extra Field (0x000a):
Extended timestamp extra field
4.5.7 -UNIX Extra Field (0x000d):
4.5.3 -Zip64 Extended Information Extra Field (0x0001)
Mode represents a file's mode and permission bits. The bits have the same definition on all systems, but not all bits apply to all systems.
An entry as stored into an Archive. Contains additional metadata and offset information.
A zip version (either created by, or required when reading an archive).
Encodings supported by this crate
The contents of an entry: a directory, a file, or a symbolic link.
Any zip-related error, from invalid archives to encoding problems.
Information stored in the central directory header
Specific zip format errors, mostly due to invalid zip archives but that could also stem from implementation shortcomings.
System on which an archive was created, as encoded into a version u16.
Compression method used for a file entry.
NTFS attribute for zip entries (mostly timestamps)
A trait for reading something as a zip archive (blocking I/O model), when we can tell size from self.
A trait for reading something as a zip archive (blocking I/O model)