package decompress

  1. Overview
  2. Docs

Lz77 algorithm.

A functionnal non-blocking implementation of Lz77 algorithm. This algorithm produces a Hunk.t list of an input.

type error =
  1. | Invalid_level of int
    (*

    This error appears when you try to compute the Lz77 algorithm with a wrong level (level >= 0 && level <= 9).

    *)
  2. | Invalid_wbits of int
    (*

    This error appears when you specify a bad wbits: wbits >= 8 && wbits <= 15

    *)

Lz77 error.

type 'i t

The state of the Lz77 algorithm.

val pp_error : Format.formatter -> error -> unit

Pretty-printer of Lz77 error.

val pp : Format.formatter -> 'i t -> unit

Pretty-printer of Lz77 state.

val used_in : 'i t -> int

used_in t returns n bytes(s) used by the algorithm in the current input.

val default : ?level:int -> ?on:(Hunk.t -> unit) -> int -> 'i t

default ~level ~on wbits produces a new state to compute the Lz77 algorithm in an input. level means the level of the compression (between 0 and 9), on is a function called when the algorithm produce one Hunk.t and wbits is the window size allowed.

Usually, wbits = 15 for a window of 32K. If wbits is lower, you constraint the distance of a Match produced by the Lz77 algorithm to the window size.

OCaml

Innovation. Community. Security.