compress.lz #
Description
compress.lz provides pure V implementations of several LZ-family codecs.
Supported formats:
lz77lz78lzwlz4lzsslzmalzma2lzjb
Use the generic API when selecting a format dynamically:
import compress.lz
encoded := lz.compress('hello hello hello'.bytes(), .lz77)!
decoded := lz.decompress(encoded, .lz77)!
assert decoded.bytestr() == 'hello hello hello'
Use the format-specific APIs for direct calls:
import compress.lz
encoded := lz.compress_lzw('banana banana'.bytes())!
decoded := lz.decompress_lzw(encoded)!
assert decoded.bytestr() == 'banana banana'
fn compress #
fn compress(data []u8, format Format) ![]u8
compress compresses data with the selected LZ format.
fn compress_lz4 #
fn compress_lz4(data []u8) ![]u8
compress_lz4 compresses data using a pure-V LZ4-like stream.
fn compress_lz77 #
fn compress_lz77(data []u8) ![]u8
compress_lz77 compresses data using a pure-V LZ77 style stream.
fn compress_lz78 #
fn compress_lz78(data []u8) ![]u8
compress_lz78 compresses data using a pure-V LZ78 dictionary stream.
fn compress_lzjb #
fn compress_lzjb(data []u8) ![]u8
compress_lzjb compresses data using a pure-V LZJB-like stream.
fn compress_lzma #
fn compress_lzma(data []u8) ![]u8
compress_lzma compresses data using a pure-V LZMA-like stream.
fn compress_lzma2 #
fn compress_lzma2(data []u8) ![]u8
compress_lzma2 compresses data using a pure-V LZMA2-like stream.
fn compress_lzss #
fn compress_lzss(data []u8) ![]u8
compress_lzss compresses data using a pure-V LZSS style stream.
fn compress_lzw #
fn compress_lzw(data []u8) ![]u8
compress_lzw compresses data using a pure-V LZW dictionary stream.
fn decompress #
fn decompress(data []u8, format Format) ![]u8
decompress decompresses data with the selected LZ format.
fn decompress_lz4 #
fn decompress_lz4(data []u8) ![]u8
decompress_lz4 decompresses data produced by compress_lz4.
fn decompress_lz77 #
fn decompress_lz77(data []u8) ![]u8
decompress_lz77 decompresses data produced by compress_lz77.
fn decompress_lz78 #
fn decompress_lz78(data []u8) ![]u8
decompress_lz78 decompresses data produced by compress_lz78.
fn decompress_lzjb #
fn decompress_lzjb(data []u8) ![]u8
decompress_lzjb decompresses data produced by compress_lzjb.
fn decompress_lzma #
fn decompress_lzma(data []u8) ![]u8
decompress_lzma decompresses data produced by compress_lzma.
fn decompress_lzma2 #
fn decompress_lzma2(data []u8) ![]u8
decompress_lzma2 decompresses data produced by compress_lzma2.
fn decompress_lzss #
fn decompress_lzss(data []u8) ![]u8
decompress_lzss decompresses data produced by compress_lzss.
fn decompress_lzw #
fn decompress_lzw(data []u8) ![]u8
decompress_lzw decompresses data produced by compress_lzw.
fn format_from_string #
fn format_from_string(name string) !Format
format_from_string parses a case-insensitive format name.
fn Format.from #
fn Format.from[W](input W) !Format
enum Format #
enum Format {
lz77
lz78
lzw
lz4
lzss
lzma
lzma2
lzjb
}
Format identifies which LZ-family codec variant to use.
- README
- fn compress
- fn compress_lz4
- fn compress_lz77
- fn compress_lz78
- fn compress_lzjb
- fn compress_lzma
- fn compress_lzma2
- fn compress_lzss
- fn compress_lzw
- fn decompress
- fn decompress_lz4
- fn decompress_lz77
- fn decompress_lz78
- fn decompress_lzjb
- fn decompress_lzma
- fn decompress_lzma2
- fn decompress_lzss
- fn decompress_lzw
- fn format_from_string
- fn Format.from
- enum Format