Package org.apache.lucene.util.compress

# Class LZ4

java.lang.Object
org.apache.lucene.util.compress.LZ4

public final class LZ4 extends Object
LZ4 compression and decompression routines.

https://github.com/lz4/lz4/tree/dev/lib http://fastcompression.blogspot.fr/p/lz4.html

The high-compression option is a simpler version of the one of the original algorithm, and only retains a better hash table that remembers about more occurrences of a previous 4-bytes sequence, and removes all the logic about handling of the case when overlapping matches are found.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `LZ4.FastCompressionHashTable`
  Simple lossy `LZ4.HashTable` that only stores the last ocurrence for each hash on `2^14` bytes of memory.
  `static final class`
  `LZ4.HighCompressionHashTable`
  A higher-precision `LZ4.HashTable`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MAX_DISTANCE`
  Window size: this is the maximum supported distance between two strings so that LZ4 can replace the second one by a reference to the first one.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `compress(byte[] bytes, int off, int len, DataOutput out, org.apache.lucene.util.compress.LZ4.HashTable ht)`
  Compress `bytes[off:off+len]` into `out` using at most 16kB of memory.
  `static void`
  `compressWithDictionary(byte[] bytes, int dictOff, int dictLen, int len, DataOutput out, org.apache.lucene.util.compress.LZ4.HashTable ht)`
  Compress `bytes[dictOff+dictLen:dictOff+dictLen+len]` into `out` using at most 16kB of memory.
  `static int`
  `decompress(DataInput compressed, int decompressedLen, byte[] dest, int dOff)`
  Decompress at least `decompressedLen` bytes into `dest[dOff:]`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### MAX_DISTANCE

    public static final int MAX_DISTANCE
    Window size: this is the maximum supported distance between two strings so that LZ4 can replace the second one by a reference to the first one.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### decompress

    public static int decompress(DataInput compressed, int decompressedLen, byte[] dest, int dOff) throws IOException
    Decompress at least `decompressedLen` bytes into `dest[dOff:]`. Please note that `dest` must be large enough to be able to hold all decompressed data (meaning that you need to know the total decompressed length). If the given bytes were compressed using a preset dictionary then the same dictionary must be provided in `dest[dOff-dictLen:dOff]`.
    Throws:
      `IOException`

  - ### compress

    public static void compress(byte[] bytes, int off, int len, DataOutput out, org.apache.lucene.util.compress.LZ4.HashTable ht) throws IOException
    Compress `bytes[off:off+len]` into `out` using at most 16kB of memory. `ht` shouldn't be shared across threads but can safely be reused.
    Throws:
      `IOException`

  - ### compressWithDictionary

    public static void compressWithDictionary(byte[] bytes, int dictOff, int dictLen, int len, DataOutput out, org.apache.lucene.util.compress.LZ4.HashTable ht) throws IOException
    Compress `bytes[dictOff+dictLen:dictOff+dictLen+len]` into `out` using at most 16kB of memory. `bytes[dictOff:dictOff+dictLen]` will be used as a dictionary. `dictLen` must not be greater than `64kB`, the maximum window size.

    `ht` shouldn't be shared across threads but can safely be reused.

    Throws:
      `IOException`