RPNX::Compress
Self-contained C++20 compression and ZIP library
 
Loading...
Searching...
No Matches
compression.hpp File Reference

Compression formats, options, errors, and buffer or iterator APIs. More...

#include <cstddef>
#include <cstdint>
#include <exception>
#include <iterator>
#include <optional>
#include <span>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include <rpnx/compression/implementation/bzip2.hpp>
#include <rpnx/compression/implementation/deflate.hpp>
#include <rpnx/compression/implementation/lz4.hpp>
#include <rpnx/compression/implementation/xz.hpp>
#include <rpnx/compression/implementation/zstandard.hpp>

Go to the source code of this file.

Classes

struct  rpnx::compression::compression_options
 Options shared by compression operations. More...
 
struct  rpnx::compression::decompression_options
 Resource and stream-validation policy for decompression operations. More...
 
class  rpnx::compression::compression_error
 Exception raised for malformed streams, invalid options, and codec failures. More...
 

Namespaces

namespace  rpnx::compression
 Facilities for creating and decoding supported compressed streams.
 

Enumerations

enum class  rpnx::compression::format : std::uint8_t {
  rpnx::compression::deflate , rpnx::compression::zlib , rpnx::compression::gzip , rpnx::compression::bzip2 ,
  rpnx::compression::xz , rpnx::compression::zstandard , rpnx::compression::lz4_frame , rpnx::compression::zip
}
 Wire formats recognized by the library. More...
 
enum class  rpnx::compression::error_code : std::uint8_t {
  rpnx::compression::invalid_data , rpnx::compression::invalid_option , rpnx::compression::output_limit_exceeded , rpnx::compression::trailing_data ,
  rpnx::compression::unsupported_feature , rpnx::compression::backend_failure , rpnx::compression::insufficient_output_space
}
 Stable machine-readable categories reported by compression_error. More...
 

Functions

std::vector< std::byte > rpnx::compression::compress (format stream_format, std::span< std::byte const > input, compression_options const &options={})
 Compresses a contiguous byte buffer into an owning result.
 
std::vector< std::byte > rpnx::compression::decompress (format stream_format, std::span< std::byte const > input, decompression_options const &options={})
 Decompresses a contiguous byte buffer into an owning result.
 
std::size_t rpnx::compression::compress (format stream_format, std::span< std::byte const > input, std::span< std::byte > output, compression_options const &options={})
 Compresses into caller-owned storage.
 
std::size_t rpnx::compression::decompress (format stream_format, std::span< std::byte const > input, std::span< std::byte > output, decompression_options const &options={})
 Decompresses into caller-owned storage.
 
template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::compress (format stream_format, input_iterator first, sentinel last, output_iterator output, compression_options const &options={})
 Compresses an iterator range into an STL output iterator.
 
template<format stream_format, std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::compress (input_iterator first, sentinel last, output_iterator output, compression_options const &options={})
 Compresses an iterator range with compile-time format dispatch.
 
template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::decompress (format stream_format, input_iterator first, sentinel last, output_iterator output, decompression_options const &options={})
 Decompresses an iterator range into an STL output iterator.
 
template<format stream_format, std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::decompress (input_iterator first, sentinel last, output_iterator output, decompression_options const &options={})
 Decompresses an iterator range with compile-time format dispatch.
 

Detailed Description

Compression formats, options, errors, and buffer or iterator APIs.

Definition in file compression.hpp.