Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
signet::forge::SnappyCodec Class Reference

Bundled Snappy compression codec (header-only, no external dependency). More...

#include <snappy.hpp>

Inheritance diagram for signet::forge::SnappyCodec:
signet::forge::CompressionCodec

Public Member Functions

expected< std::vector< uint8_t > > compress (const uint8_t *data, size_t size) const override
 Snappy-compress the input data.
 
expected< std::vector< uint8_t > > decompress (const uint8_t *data, size_t size, size_t uncompressed_size) const override
 Snappy-decompress the input data.
 
Metadata
Compression codec_type () const override
 Return Compression::SNAPPY.
 
const char * name () const override
 Return the codec name "snappy".
 
- Public Member Functions inherited from signet::forge::CompressionCodec
virtual ~CompressionCodec ()=default
 Virtual destructor for safe polymorphic deletion.
 

Detailed Description

Bundled Snappy compression codec (header-only, no external dependency).

Implements both compression and decompression of the Snappy block format used by Apache Parquet. The compressor uses a single-pass greedy hash-chain matching strategy with a 16384-entry hash table. Worst-case expansion is approximately 1.004x the input size.

Register with the CodecRegistry via register_snappy_codec().

See also
CompressionCodec, register_snappy_codec()

Definition at line 241 of file snappy.hpp.

Member Function Documentation

◆ codec_type()

Compression signet::forge::SnappyCodec::codec_type ( ) const
inlineoverridevirtual

Return Compression::SNAPPY.

Implements signet::forge::CompressionCodec.

Definition at line 585 of file snappy.hpp.

◆ compress()

expected< std::vector< uint8_t > > signet::forge::SnappyCodec::compress ( const uint8_t *  data,
size_t  size 
) const
inlineoverridevirtual

Snappy-compress the input data.

The output contains a varint-encoded uncompressed length preamble followed by a sequence of literal and copy elements.

Parameters
dataPointer to the uncompressed input bytes.
sizeNumber of bytes to compress.
Returns
The Snappy-compressed byte buffer on success.

Implements signet::forge::CompressionCodec.

Definition at line 251 of file snappy.hpp.

◆ decompress()

expected< std::vector< uint8_t > > signet::forge::SnappyCodec::decompress ( const uint8_t *  data,
size_t  size,
size_t  uncompressed_size 
) const
inlineoverridevirtual

Snappy-decompress the input data.

The Snappy stream contains its own uncompressed-length preamble; this method verifies that it agrees with the Parquet-declared uncompressed_size. A mismatch is reported as ErrorCode::CORRUPT_PAGE.

Parameters
dataPointer to the Snappy-compressed input bytes.
sizeNumber of compressed bytes.
uncompressed_sizeExpected decompressed size (from the Parquet page header).
Returns
The decompressed byte buffer, or an Error on corruption/truncation.

Implements signet::forge::CompressionCodec.

Definition at line 360 of file snappy.hpp.

◆ name()

const char * signet::forge::SnappyCodec::name ( ) const
inlineoverridevirtual

Return the codec name "snappy".

Implements signet::forge::CompressionCodec.

Definition at line 590 of file snappy.hpp.


The documentation for this class was generated from the following file: