package decompress

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
val compress : w:window -> q:Queue.t -> refill:(bigstring -> int) -> flush:(bigstring -> int -> unit) -> bigstring -> bigstring -> unit

compress ~w ~q ~refill ~flush i o is Zlib.compress (with ~header:false) provided by camlzip package.

  • w is the window used by LZ77 compression algorithm.
  • q is shared-queue between compression algorithm and DEFLATE encoder.
  • i is input buffer.
  • o is output buffer.

When compress wants more input, it calls refill with i. The client returns how many bytes he wrote into i. If he returns 0, he signals end of input.

When compress has written output buffer, it calls flush with o and how many bytes it wrote.

val uncompress : w:window -> refill:(bigstring -> int) -> flush:(bigstring -> int -> unit) -> bigstring -> bigstring -> (unit, [> `Msg of string ]) result

uncompress ~w ~refill ~flush i o is Zlib.uncompress (with ~header:false) provided by camlzip package.

  • w is the window used by LZ77 uncompression algorithm
  • i is input buffer.
  • o is output buffer.

When compress wants more input, it calls refill with i. The client returns how many bytes he wrote into i. If he returns 0, he signals end of input.

When compress has written output buffer, it calls flush with o and how many bytes it wrote.

val of_string : o:bigstring -> w:window -> string -> flush:(bigstring -> int -> unit) -> (unit, [> `Msg of string ]) result
val to_string : ?buffer:int -> w:window -> q:Queue.t -> refill:(bigstring -> int) -> bigstring -> string
OCaml

Innovation. Community. Security.