java-class-compression-rese.../src/main/java/eu/mikroskeem/uurimustoo/algoritmidetest/algoritmid/Brotli.java

32 lines
901 B
Java

package eu.mikroskeem.uurimustoo.algoritmidetest.algoritmid;
import lombok.Getter;
import org.meteogroup.jbrotli.BrotliStreamCompressor;
import org.meteogroup.jbrotli.BrotliStreamDeCompressor;
import org.meteogroup.jbrotli.libloader.BrotliLibraryLoader;
/**
* @author Mark Vainomaa
*/
public class Brotli extends AbstractAlgorithm {
@Getter private final String name = "Brotli";
static {
BrotliLibraryLoader.loadBrotli();
}
@Override
public byte[] compress(byte[] input) {
BrotliStreamCompressor compressor = new BrotliStreamCompressor();
return compressor.compressArray(input, true);
}
@Override
public byte[] decompress(byte[] input) {
BrotliStreamDeCompressor decompressor = new BrotliStreamDeCompressor();
byte[] buf = new byte[8192]; // *sigh*
decompressor.deCompress(input, buf);
return buf;
}
}