Module Bz2
module Bz2: sig
.. end
Bzip2 interface
The module Bz
provides a basic interface to the bzip2
compression library.
Datatypes & exceptions
type
in_channel
type
out_channel
exception IO_error of string
Exception IO_error
is raised when there is an error reading or
writing on a compressed channel ; the string argument is the message
reported by the OS.
exception Data_error
Exception Data_error
is raised when a data integrity error is
detected during decompression.
exception Unexpected_EOF
Exception Unexpected_EOF
is raised when an in_channel
finishes before the logical end of stream is detected.
When any of these exception is raised, the channel is
automatically closed (but you still have to close the Pervasives
channel).
val version : string
Version of the underlying bzip2
library.
File I/O
File input
val open_in : ?small:bool -> ?unused:string -> Pervasives.in_channel -> in_channel
open_in ic
opens a compressed stream reading from the
Pervasives
input channel ic
.
small
: when true
requests usage of a different method for
decompressing that is slower but uses less memory. Defaults:
false
val read : in_channel -> string -> int -> int -> int
read buf pos len
reads up to len
characters and store them in
the string buffer buf
, starting at position pos
.
Raises End_of_file
if end of stream was already reached.
Returns number of bytes actually read, (a value strictly less than
len
means end of stream).
val read_get_unused : in_channel -> string
If there's some data after the compressed stream that you want to
read from the same Pervasives
in_channel
, use
read_get_unused
.
val close_in : in_channel -> unit
File output
val open_out : ?block:int -> Pervasives.out_channel -> out_channel
open_out oc
creates an out_channel
writing to the Pervasives
output channel oc
. Once the write operations are finished and
the compressed channel is closed, it is possible to continue
writing on the Pervasives
channel. However, reading back
requires special care (cf. above).
block
: block size to use for compresion. It is a value
between 1 and 9 inclusive. 9 is the default and provides best
compression but takes most memory.
val write : out_channel -> string -> int -> int -> unit
write oc buf pos len
writes len
characters, coming from buf
and starting at position pos
, to oc
val close_out : out_channel -> unit
In-memory compression
These functions compress to/decompress from string buffers.
val compress : ?block:int -> string -> int -> int -> string
compress buf pos len
compress a data chunk coming from buf
,
len
character long, and starting at pos
.
Returns compressed data chunk as string
val uncompress : ?small:bool -> string -> int -> int -> string
uncompress buf pos len
uncompress a data chunk comfing from
buf
, len
character long, and starting at pos
.
Returns uncompressed data chunk as string
small
: see Bz2.open_in
above