Package org.xerial.snappy

Snappy API for compressing/decompressing data.

Usage First, import Snappy in your Java code:

 import org.xerial.snappy.Snappy;
 
Then use Snappy.compress(byte[]) and Snappy.uncompress(byte[]):
 String input = "Hello snappy-java! Snappy-java is a JNI-based wrapper of Snappy, a fast compresser/decompresser.";
 byte[] compressed = Snappy.compress(input.getBytes("UTF-8"));
 byte[] uncompressed = Snappy.uncompress(compressed);
 String result = new String(uncompressed, "UTF-8");
 System.out.println(result);
 

In addition, high-level methods (Snappy.compress(String), Snappy.compress(float[] ..) etc. ) and low-level ones (e.g. Snappy.rawCompress(.. ), Snappy.rawUncompress(..), etc.), which minimize memory copies, can be used.

Stream-based API

Stream-based compressor/decompressor SnappyOutputStream, SnappyInputStream are also available for reading/writing large data sets.