package decompress

  1. Overview
  2. Docs
Implementation of Zlib and GZip in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

decompress-v1.3.0.tbz
sha256=de149896939be13fedec46a4581121d5ab74850a2241d08e6aa8ae4bb18c52c4
sha512=324b4c2daef6ddaae2d28edcdadec8e29ebcc408eed2fed3fe4a3cb298cd78864d9ac939ae794c6ff8d9f5233a7cfa6feee62aa683ed3eb73f53ab8ea74cbffb

doc/decompress.de/De/Inf/index.html

Module De.InfSource

Sourcetype src = [
  1. | `Channel of in_channel
  2. | `String of string
  3. | `Manual
]

The type for input sources. With a `Manual source the client must provide input with src. With `String or `Channel source the client can safely discard `Await case (with assert false).

Sourcetype decode = [
  1. | `Await
  2. | `Flush
  3. | `End
  4. | `Malformed of string
]
Sourcetype decoder

The type for decoders.

Sourceval decoder : src -> o:bigstring -> w:window -> decoder

decoder src ~o ~w is a decoder that inputs from src.

Output buffer.

de uses o buffer as internal buffer to store output. We recommend to allocate an io_buffer_size buffer as output buffer. Then, dst_rem gives you how many bytes it remains in o.

Window.

de needs a window to be able to interpret `Copy code. Length of window is commonly 32k bytes (but the client can use a smaller one with some assumptions).

Sourceval decode : decoder -> decode

decode d is:

  • `Await if d has a `Manual input source and awaits for more input. The client must use src to provide it.
  • `Flush d if given output buffer o (see decoder) is full. The client must use flush to completely flush o. dst_rem gives you how many bytes it remains in o. Inf.dst_rem d - bigstring_length o gives you how many bytes are available.
  • `Malformed err if given input is malformed. err is a human-readable error.
  • `End if given input notify end of flow. o is possibly not empty (it can be check with dst_rem).
Sourceval reset : decoder -> unit

reset d is a decoder as is when it was created by decoder.

Sourceval src : decoder -> bigstring -> int -> int -> unit

src d s j l provides d with l bytes to read, starting at j in s. This byte range is read by calls to decode with d until `Await is returned. To signal the end of input call the function with l = 0.

Sourceval dst_rem : decoder -> int

dst_rem d is how many bytes it remains in given output buffer o.

Sourceval src_rem : decoder -> int

src_rem d is how many bytes it remains in given input buffer.

Sourceval flush : decoder -> unit

flush d provides d with new output storage.

Sourceval checksum : decoder -> optint

checkseum d is ADLER-32 checksum of consumed inputs.

OCaml

Innovation. Community. Security.