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

Native LZ4 block and frame coding implementation. More...

#include <algorithm>
#include <array>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <limits>
#include <optional>
#include <span>
#include <type_traits>
#include <vector>
#include <rpnx/compression/implementation/io.hpp>

Go to the source code of this file.

Classes

class  rpnx::compression::lz4_codec::xxhash32_accumulator
 Incremental XXH32 accumulator for streamed LZ4 content checksums. More...
 

Namespaces

namespace  rpnx::compression
 Facilities for creating and decoding supported compressed streams.
 
namespace  rpnx::compression::lz4_codec
 Internal implementation of LZ4 frame compression and decompression.
 

Functions

std::uint32_t rpnx::compression::lz4_codec::rotate_left (std::uint32_t value, std::uint8_t count) noexcept
 Rotates a 32-bit value left without compiler-specific intrinsics.
 
std::uint32_t rpnx::compression::lz4_codec::read_word (std::span< std::byte const > input, std::size_t offset) noexcept
 Reads an unchecked little-endian word from a known-valid range.
 
std::uint32_t rpnx::compression::lz4_codec::xxhash32 (std::span< std::byte const > input, std::uint32_t seed=0U) noexcept
 Computes XXH32 as required by the LZ4 frame format.
 
void rpnx::compression::lz4_codec::append_extended_length (std::vector< std::byte > &output, std::size_t length)
 Encodes an extended LZ4 literal or match length.
 
std::vector< std::byte > rpnx::compression::lz4_codec::compress_block (std::span< std::byte const > input, std::int32_t level)
 Compresses one independent LZ4 block.
 
std::size_t rpnx::compression::lz4_codec::read_extended_length (std::span< std::byte const > input, std::size_t &position, std::size_t initial)
 Reads an LZ4 extended length while checking block bounds.
 
template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::lz4_codec::compress (input_iterator first, sentinel last, output_iterator output, compression_options const &options)
 Compresses an iterator range as an LZ4 frame.
 
template<std::input_iterator input_iterator, std::sentinel_for< input_iterator > sentinel, typename output_iterator>
output_iterator rpnx::compression::lz4_codec::decompress (input_iterator first, sentinel last, output_iterator output, decompression_options const &options)
 Decompresses one or more LZ4 frames.
 

Detailed Description

Native LZ4 block and frame coding implementation.

Definition in file lz4.hpp.