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[W](input W) !CompressFlags

fn CompressFlags.zero #

fn CompressFlags.zero() CompressFlags

fn DecompressFlags.from #

fn DecompressFlags.from[W](input W) !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 (e &CompressFlags) all(flag_ CompressFlags) bool

fn (CompressFlags) clear #

fn (mut e CompressFlags) clear(flag_ CompressFlags)

fn (CompressFlags) clear_all #

fn (mut e CompressFlags) clear_all()

fn (CompressFlags) has #

fn (e &CompressFlags) has(flag_ CompressFlags) bool

fn (CompressFlags) is_empty #

fn (e &CompressFlags) is_empty() bool

fn (CompressFlags) set #

fn (mut e CompressFlags) set(flag_ CompressFlags)

fn (CompressFlags) set_all #

fn (mut e CompressFlags) set_all()

fn (CompressFlags) toggle #

fn (mut e CompressFlags) toggle(flag_ CompressFlags)

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 (e &DecompressFlags) all(flag_ DecompressFlags) bool

fn (DecompressFlags) clear #

fn (mut e DecompressFlags) clear(flag_ DecompressFlags)

fn (DecompressFlags) clear_all #

fn (mut e DecompressFlags) clear_all()

fn (DecompressFlags) has #

fn (e &DecompressFlags) has(flag_ DecompressFlags) bool

fn (DecompressFlags) is_empty #

fn (e &DecompressFlags) is_empty() bool

fn (DecompressFlags) set #

fn (mut e DecompressFlags) set(flag_ DecompressFlags)

fn (DecompressFlags) set_all #

fn (mut e DecompressFlags) set_all()

fn (DecompressFlags) toggle #

fn (mut e DecompressFlags) toggle(flag_ DecompressFlags)

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.