package decompress

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

Install

Dune Dependency

Authors

Maintainers

Sources

decompress-1.5.0.tbz
sha256=73183dc1186ab6cf1ca641146f6948f2fae6a69729ec0a1e62943385f9895077
sha512=31508b4ae16f6850fd86391f4bb3f950bba12ac45398c8ddb1b6e74f6a96f6a150b81377d6fd49146f1f0789c43a761d709d1d73a782d9c0df0d00a3c9663c89

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.

Sourcemodule Ns : sig ... end

A non-streamable implementation of the RFC 1951. It considers the input to be whole and is therefore able to save some time

OCaml

Innovation. Community. Security.