Skip to content

compress.gzip #


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


import compress.gzip

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

Constants #

const (
	reserved_bits = 00b11100000
	ftext         = 00b00000001
	fextra        = 00b00000100
	fname         = 00b00001000
	fcomment      = 00b00010000
	fhcrc         = 00b00000010

fn compress #

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

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


compressed := gzip.compress(b)?

fn decompress #

fn decompress(data []u8, params DecompressParams) ![]u8

decompresses an array of bytes using zlib and returns the decompressed bytes in a new array


decompressed := gzip.decompress(b)?

fn validate #

fn validate(data []u8, params DecompressParams) !GzipHeader

validate validates the header and returns its details if valid

struct DecompressParams #

struct DecompressParams {
	verify_header_checksum bool = true
	verify_length          bool = true
	verify_checksum        bool = true

struct GzipHeader #

struct GzipHeader {
pub mut:
	length            int = 10
	extra             []u8
	filename          []u8
	comment           []u8
	modification_time u32
	operating_system  u8