v2 / vlib / compress / deflate / README.md
37 lines · 27 sloc · 1.03 KB · 96c365159d037716a7097f6b02e4b4b82edd0a8a
Raw

Description

compress.deflate is a pure V RFC-compliant DEFLATE module.

Compression output format is selected by CompressFormat via compress(data, format: ...):

Interop Validation

Cross-validation with C/zlib is kept separate from v test and can be run manually:

./vnew run vlib/compress/deflate/interop/deflate_interop.v

Example

import compress.deflate

fn main() {
    uncompressed := 'Hello world!'
    zlib_stream := deflate.compress(uncompressed.bytes())!
    gzip_stream := deflate.compress(uncompressed.bytes(), format: .gzip)!
    raw_stream := deflate.compress(uncompressed.bytes(), format: .raw_deflate)!
    assert deflate.decompress(zlib_stream)! == uncompressed.bytes()
    assert deflate.decompress(gzip_stream)! == uncompressed.bytes()
    decompressed := deflate.decompress(raw_stream)!
    assert decompressed == uncompressed.bytes()
}