GorillaStream.Compression.Decoder.Metadata (gorilla_stream v3.0.3)

Copy Markdown View Source

Metadata extraction module for Gorilla compression decompression.

This module handles the extraction and parsing of metadata headers from compressed data created by the Gorilla compression algorithm.

The metadata format includes:

  • Magic number for format identification
  • Version information
  • Compression parameters
  • Data statistics
  • Checksum for integrity verification

Summary

Functions

Calculates compression efficiency metrics from metadata.

Estimates the original data size from metadata.

Extracts metadata from encoded data.

Extracts basic information from metadata header without full parsing.

Checks if binary data contains a valid Gorilla metadata header.

Validates metadata header format without full parsing.

Functions

calculate_efficiency_metrics(metadata)

Calculates compression efficiency metrics from metadata.

Parameters

  • metadata: Parsed metadata map

Returns

  • Map with efficiency metrics

estimate_original_size(arg1)

Estimates the original data size from metadata.

Parameters

  • metadata: Parsed metadata map

Returns

  • Estimated original size in bytes

extract_metadata(encoded_data)

Extracts metadata from encoded data.

Parameters

  • encoded_data: Binary data containing metadata header and compressed data

Returns

  • {metadata, remaining_data}: Tuple containing extracted metadata and remaining data

get_header_info(binary)

Extracts basic information from metadata header without full parsing.

Parameters

  • binary: Binary data starting with metadata header

Returns

  • {:ok, info_map} with basic info, or {:error, reason}

has_valid_header?(binary)

Checks if binary data contains a valid Gorilla metadata header.

Parameters

  • binary: Binary data to check

Returns

  • true if contains valid header, false otherwise

validate_metadata_header(binary)

Validates metadata header format without full parsing.

Parameters

  • binary: Binary data that should start with metadata header

Returns

  • :ok if valid, {:error, reason} if invalid