Skip to content

compress.gzip #

Description

compress.gzip is a module that assists in the compression and decompression of binary data using gzip compression

Examples:

import compress.gzip

fn main() {
    uncompressed := 'Hello world!'
    compressed := gzip.compress(uncompressed.bytes())!
    decompressed := gzip.decompress(compressed)!
    assert decompressed == uncompressed.bytes()
}

fn compress #

fn compress(data []u8) ![]u8

compress compresses an array of bytes using gzip and returns the compressed bytes in a new array.

fn decompress #

fn decompress(data []u8) ![]u8

decompress decompresses a gzip stream and returns the decompressed bytes in a new array.

fn decompress_with_callback #

fn decompress_with_callback(data []u8, cb deflate.ChunkCallback, userdata voidptr) !int

decompress_with_callback decompresses a gzip stream (RFC 1952) using a callback for chunked delivery. The callback receives chunks of decompressed data and should return the chunk length to continue, or 0 to abort. Returns the total decompressed length.

fn validate #

@[deprecated: 'never used']
@[deprecated_after: '2026-07-31']
fn validate(data []u8, _ DecompressParams) !deflate.GzipHeader

validate validates the gzip header of data and returns its parsed details if valid. N.B.: only retained for API compatibility, all validation is now performed by the deflate backend. The returned header details are not used by the decompressor.

Todo: remove after the deprecation period.

fn CompressFlags.from #

fn CompressFlags.from() CompressFlags

fn CompressFlags.zero #

fn CompressFlags.zero() CompressFlags

fn DecompressFlags.from #

fn DecompressFlags.from() DecompressFlags

fn DecompressFlags.zero #

fn DecompressFlags.zero() DecompressFlags

enum CompressFlags #

@[deprecated: 'never used']
@[deprecated_after: '2026-07-31']
@[flag]
enum CompressFlags {
	// The low 12 bits will be overwritten by `compression_level`
	compression_level_overwrite_flag01
	compression_level_overwrite_flag02
	compression_level_overwrite_flag03
	compression_level_overwrite_flag04
	compression_level_overwrite_flag05
	compression_level_overwrite_flag06
	compression_level_overwrite_flag07
	compression_level_overwrite_flag08
	compression_level_overwrite_flag09
	compression_level_overwrite_flag10
	compression_level_overwrite_flag11
	compression_level_overwrite_flag12
	write_zlib_header
	compute_adler32
	greedy_parsing_flag
	nondeterministic_parsing_flag
	rle_matches
	filter_matches
	force_all_static_blocks
	force_all_raw_blocks
}

CompressFlags

fn (CompressFlags) all #

fn (CompressFlags) has #

fn (CompressFlags) is_empty #

enum DecompressFlags #

@[deprecated: 'never used']
@[deprecated_after: '2026-07-31']
@[flag]
enum DecompressFlags {
	parse_zlib_header
	has_more_input
	using_non_wrapping_output_buf
	compute_adler32
}

DecompressFlags N.B.: only retained for API compatibility.

fn (DecompressFlags) all #

fn (DecompressFlags) has #

fn (DecompressFlags) is_empty #

struct CompressParams #

@[deprecated: 'never used']
@[deprecated_after: '2026-07-31']
@[params]
struct CompressParams {
pub:
	compression_level int
	flags             CompressFlags
}

CompressParams set compression_level for compression:

struct DecompressParams #

@[deprecated: 'never used']
@[deprecated_after: '2026-07-31']
@[params]
struct DecompressParams {
pub:
	verify_header_checksum bool = true
	verify_length          bool = true
	verify_checksum        bool = true
	flags                  DecompressFlags
}

DecompressParams controls gzip decompression behavior. N.B.: only retained for API compatibility.