Skip to content

compress.brotli #

Description

compress.brotli compresses and decompresses binary data using Brotli.

The module loads the system libbrotlienc and libbrotlidec shared libraries at runtime. Set V_BROTLI_ENC_LIB or V_BROTLI_DEC_LIB to point to custom library locations when they are not in the platform loader path.

Examples

import compress.brotli

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

fn compress #

fn compress(data []u8, params CompressParams) ![]u8

compress compresses data as a Brotli stream and returns the compressed bytes.

fn decompress #

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

decompress decompresses a Brotli stream and returns the decompressed bytes.

fn is_available #

fn is_available() bool

is_available reports whether both Brotli encoder and decoder libraries can be loaded.

fn Mode.from #

fn Mode.from[W](input W) !Mode

enum Mode #

enum Mode {
	generic = 0
	text    = 1
	font    = 2
}

Mode tunes the Brotli encoder for generic, text, or font data.

struct CompressParams #

@[params]
struct CompressParams {
pub:
	quality int  = 11
	lgwin   int  = 22
	mode    Mode = .generic
}

CompressParams controls Brotli compression.

struct DecompressParams #

@[params]
struct DecompressParams {}

DecompressParams controls Brotli decompression.