Deterministic ZIP32 archive creation and validated extraction APIs. More...
#include <rpnx/compression/compression.hpp>#include <rpnx/compression/implementation/io.hpp>#include <algorithm>#include <cstddef>#include <cstdint>#include <iterator>#include <limits>#include <optional>#include <set>#include <span>#include <string>#include <string_view>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | rpnx::compression::zip_entry |
| An owning ZIP archive member. More... | |
| struct | rpnx::compression::zip_extraction_options |
| Resource limits applied while parsing a ZIP archive. More... | |
| struct | rpnx::compression::zip_detail::directory_record |
| Directory metadata retained until the central directory is emitted. More... | |
| class | rpnx::compression::zip_detail::counting_output_iterator< output_iterator > |
| Output iterator that counts bytes while forwarding every assignment. More... | |
| class | rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::assignment_proxy |
| Assignment proxy returned by operator*. More... | |
Namespaces | |
| namespace | rpnx::compression |
| Facilities for creating and decoding supported compressed streams. | |
| namespace | rpnx::compression::zip_detail |
| Internal ZIP32 parsing and output-iterator support. | |
Enumerations | |
| enum class | rpnx::compression::zip_compression : std::uint8_t { rpnx::compression::stored , rpnx::compression::deflate } |
| Compression methods supported for individual ZIP members. More... | |
Functions | |
| std::vector< std::byte > | rpnx::compression::create_zip (std::span< zip_entry const > entries) |
| Creates a deterministic ZIP32 archive from contiguous entries. | |
| std::vector< zip_entry > | rpnx::compression::extract_zip (std::span< std::byte const > archive, zip_extraction_options const &options={}) |
| Extracts a contiguous ZIP32 archive into owning entries. | |
| bool | rpnx::compression::zip_detail::path_is_safe (std::string const &path) |
| Tests whether a member path is confined to a relative extraction root. | |
| template<typename output_iterator> | |
| output_iterator | rpnx::compression::zip_detail::extract_archive (std::span< std::byte const > archive, output_iterator output, zip_extraction_options const &options) |
| Extracts an archive that has been materialized for random access. | |
| template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator> | |
| output_iterator | rpnx::compression::create_zip (input_iterator first, sentinel last, output_iterator output) |
| Creates a deterministic ZIP32 archive from an iterator range. | |
| template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator> | |
| output_iterator | rpnx::compression::extract_zip (input_iterator first, sentinel last, output_iterator output, zip_extraction_options const &options={}) |
| Extracts validated ZIP members through an STL output iterator. | |
Deterministic ZIP32 archive creation and validated extraction APIs.
Definition in file zip.hpp.