| Copyright | © 2015 Herbert Valerio Riedel |
|---|---|
| License | BSD3 |
| Maintainer | hvr@gnu.org |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
System.IO.Streams.Lzma
Description
Simple IO-Streams interface for lzma/xz compression
See also the XZ Utils home page: http://tukaani.org/xz/
- decompress :: InputStream ByteString -> IO (InputStream ByteString)
- decompressWith :: DecompressParams -> InputStream ByteString -> IO (InputStream ByteString)
- defaultDecompressParams :: DecompressParams
- data DecompressParams :: *
- compressIntegrityCheck :: CompressParams -> IntegrityCheck
- compressLevel :: CompressParams -> CompressionLevel
- compressLevelExtreme :: CompressParams -> Bool
- compress :: OutputStream ByteString -> IO (OutputStream ByteString)
- compressWith :: CompressParams -> OutputStream ByteString -> IO (OutputStream ByteString)
- defaultCompressParams :: CompressParams
- data CompressParams :: *
- decompressTellNoCheck :: DecompressParams -> Bool
- decompressTellUnsupportedCheck :: DecompressParams -> Bool
- decompressTellAnyCheck :: DecompressParams -> Bool
- decompressConcatenated :: DecompressParams -> Bool
- decompressAutoDecoder :: DecompressParams -> Bool
- decompressMemLimit :: DecompressParams -> Word64
- data IntegrityCheck :: *
- data CompressionLevel :: *
ByteString decompression
decompress :: InputStream ByteString -> IO (InputStream ByteString) Source
Decompress an InputStream of strict ByteStrings from the .xz format
decompressWith :: DecompressParams -> InputStream ByteString -> IO (InputStream ByteString) Source
Like decompress but with the ability to specify various decompression
parameters. Typical usage:
decompressWith defaultDecompressParams { decompress... = ... }defaultDecompressParams :: DecompressParams
The default set of parameters for decompression. This is
typically used with the decompressWith function with specific
parameters overridden.
data DecompressParams :: *
Set of parameters for decompression. The defaults are
defaultDecompressParams.
Instances
compressIntegrityCheck :: CompressParams -> IntegrityCheck
CompressParams field: Specify type of integrity check
compressLevel :: CompressParams -> CompressionLevel
CompressParams field: See documentation of CompressionLevel
compressLevelExtreme :: CompressParams -> Bool
CompressParams field: Enable slower variant of the
lzmaCompLevel preset, see xz(1)
man-page for details.
ByteString compression
compress :: OutputStream ByteString -> IO (OutputStream ByteString) Source
Convert an OutputStream that consumes compressed ByteStrings
(in the .xz format) into an OutputStream that consumes
uncompressed ByteStrings
compressWith :: CompressParams -> OutputStream ByteString -> IO (OutputStream ByteString) Source
Like compress but with the ability to specify various compression
parameters. Typical usage:
compressWith defaultCompressParams { compress... = ... }defaultCompressParams :: CompressParams
The default set of parameters for compression. This is typically
used with the compressWith function with specific parameters
overridden.
data CompressParams :: *
Set of parameters for compression. The defaults are defaultCompressParams.
Instances
decompressTellNoCheck :: DecompressParams -> Bool
DecompressParams field: If set, abort if decoded stream has no integrity check.
decompressTellUnsupportedCheck :: DecompressParams -> Bool
DecompressParams field: If set, abort (via LzmaRetGetCheck) if decoded stream integrity check is unsupported.
decompressTellAnyCheck :: DecompressParams -> Bool
DecompressParams field: If set, abort (via LzmaRetGetCheck) as soon as the type of the integrity check has been detected.
decompressConcatenated :: DecompressParams -> Bool
DecompressParams field: If set, concatenated files as decoded seamless.
decompressAutoDecoder :: DecompressParams -> Bool
DecompressParams field: If set, legacy .lzma-encoded streams are allowed too.
decompressMemLimit :: DecompressParams -> Word64
DecompressParams field: decompressor memory limit. Set to maxBound to disable memory limit.
data IntegrityCheck :: *
Integrity check type (only supported when compressing .xz files)
Constructors
| IntegrityCheckNone | disable integrity check (not recommended) |
| IntegrityCheckCrc32 | CRC32 using the polynomial from IEEE-802.3 |
| IntegrityCheckCrc64 | CRC64 using the polynomial from ECMA-182 |
| IntegrityCheckSha256 | SHA-256 |
data CompressionLevel :: *
Compression level presets that define the tradeoff between computational complexity and compression ratio
CompressionLevel0 has the lowest compression ratio as well as the
lowest memory requirements, whereas CompressionLevel9 has the
highest compression ratio and can require over 600MiB during
compression (and over 60MiB during decompression). The
man-page for xz(1)
contains more detailed information with tables describing the
properties of all compression level presets.
CompressionLevel6 is the default setting in
defaultCompressParams as it provides a good trade-off and
matches the default of the xz(1) tool.