UNPKG

@valkey/valkey-glide

Version:

General Language Independent Driver for the Enterprise (GLIDE) for Valkey

70 lines (69 loc) 2.25 kB
/** * Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0 */ /** * Compression backend to use for automatic value compression. */ export declare enum CompressionBackend { /** Use zstd compression backend. */ ZSTD = 0, /** Use lz4 compression backend. */ LZ4 = 1 } /** * Configuration for automatic compression of values sent to the server. * * NOTE: This is an experimental feature. The API may change in future releases. * * When compression is enabled, values that meet the minimum size threshold * will be automatically compressed before being sent to the server and * decompressed when retrieved. * * @example * ```typescript * // Enable compression with defaults (ZSTD, 64 byte threshold) * const config: CompressionConfiguration = { enabled: true }; * * // Enable compression with LZ4 backend and custom threshold * const config: CompressionConfiguration = { * enabled: true, * backend: CompressionBackend.LZ4, * minCompressionSize: 128, * }; * * // Enable compression with custom max decompressed size limit * const config: CompressionConfiguration = { * enabled: true, * maxDecompressedSize: 100 * 1024 * 1024, // 100MB limit * }; * ``` */ export interface CompressionConfiguration { /** * Whether compression is enabled. Defaults to false. */ enabled: boolean; /** * The compression backend to use. Defaults to ZSTD. */ backend?: CompressionBackend; /** * The compression level. If not set, the backend's default level is used. * Valid ranges are backend-specific and validated by the Rust core. * ZSTD default is 3, LZ4 default is 0. */ compressionLevel?: number; /** * Minimum size in bytes for values to be compressed. * Values smaller than this will not be compressed. * Must be at least 6 bytes. Defaults to 64 bytes. */ minCompressionSize?: number; /** * Maximum allowed size in bytes for decompressed data. * This limit prevents decompression bombs (maliciously crafted compressed data * that expands to huge sizes). * If not set, defaults to 512MB (matching Valkey's proto-max-bulk-len). */ maxDecompressedSize?: number; }