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 #
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 #
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 #
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 #
struct CompressParams {
pub:
compression_level int
flags CompressFlags
}
CompressParams set compression_level for compression:
struct DecompressParams #
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.