Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
codec.hpp File Reference

Compression codec interface and registry for Signet Forge. More...

#include "signet/types.hpp"
#include "signet/error.hpp"
#include <algorithm>
#include <cstdint>
#include <cstring>
#include <memory>
#include <mutex>
#include <unordered_map>
#include <vector>

Go to the source code of this file.

Classes

class  signet::forge::CompressionCodec
 Abstract base class for all compression/decompression codecs. More...
 
class  signet::forge::CodecRegistry
 Thread-safe singleton registry of compression codec implementations. More...
 

Namespaces

namespace  signet
 
namespace  signet::forge
 

Functions

expected< std::vector< uint8_t > > signet::forge::compress (Compression codec, const uint8_t *data, size_t size)
 Compress data using the specified codec via the global CodecRegistry.
 
expected< std::vector< uint8_t > > signet::forge::decompress (Compression codec, const uint8_t *data, size_t size, size_t uncompressed_size)
 Decompress data using the specified codec via the global CodecRegistry.
 
Compression signet::forge::auto_select_compression (const uint8_t *sample_data, size_t sample_size)
 Automatically select the best available compression codec.
 

Detailed Description

Compression codec interface and registry for Signet Forge.

Provides:

  • CompressionCodec: Abstract base class for all compression codecs
  • CodecRegistry: Thread-safe singleton registry of codec implementations
  • compress() / decompress(): Convenience functions using the registry
  • auto_select_compression(): Heuristic codec selection based on availability

Concrete codec implementations (Snappy, ZSTD, LZ4, GZIP) register themselves via CodecRegistry::instance().register_codec() at startup. UNCOMPRESSED is handled inline without a registered codec.

See also
snappy.hpp, zstd.hpp, lz4.hpp, gzip.hpp

Definition in file codec.hpp.