Compressors

object Compressors

Compressors

Compressors

Authors

Giuseppe Cannella

Since

0.0.1

class Object
trait Matchable
class Any

Type members

Classlikes

case class StreamCompress(compressorName: StreamableCompressor, out: OutputStream)
case class StreamDecompress(compressorName: StreamableCompressor, in: InputStream)

Decompressing stream example

Decompressing stream example

val zStream     = StreamDecompress(StreamableCompressor.GZ, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.DEFLATE, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.BZ2, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.PACK200, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.XZ, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.ZSTANDARD, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.LZMA, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.LZ4, new FileInputStream("/tmp/compressedFile"))
//  val zStream     = StreamDecompress(StreamableCompressor.Snappy1, new FileInputStream("/tmp/compressedFile"))
val buffer       = new Array[Byte](2)
val decompressed = new StringBuilder

@tailrec
def readBuffer(): Unit = {
 zStream.readInBuffer(buffer) match {
   case Failure(exception) => exception.printStackTrace
   case Success(bytesRead) =>
     if (bytesRead != -1) {
       decompressed.append(new String(buffer, StandardCharsets.UTF_8))
       readBuffer()
     } else {
       println
       zStream.close()
     }
 }
}
readBuffer()
val cl: Try[Unit] = zStream.close()
assert(decompressed.toString == "foobar")

object StreamableCompressor extends Enumeration

Value members

Concrete methods

def arCompress(src: List[String], dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File and folder to compress

Returns

Statistics on compression procedure

def arDecompress(src: String, dest: String, entries: Option[List[String]]): Try[DecompressionStats]
Value Params
dest

Destination folder

entries

If != None extract only these entries

src

File to decompress

Returns

Statistics on decompression procedure

def bzip2Compress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to compress

Returns

Statistics on compression procedure

def bzip2Decompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def compressStream(compressorName: StreamableCompressor, in: InputStream, out: OutputStream): Try[Unit]
val in: InputStream     = ???
val out: OutputStream   = ???
val compress: Try[Unit] = compressStream(StreamableCompressor.GZ, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.DEFLATE, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.BZ2, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.PACK200, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.XZ, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.ZSTANDARD, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.LZMA, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.LZ4, in, out)
//    val compress: Try[Unit] = compressStream(StreamableCompressor.SNAPPY, in, out)
def cpioCompress(src: List[String], dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File and folder to compress

Returns

Statistics on compression procedure

def cpioDecompress(src: String, dest: String, entries: Option[List[String]]): Try[DecompressionStats]
Value Params
dest

Destination folder

entries

If != None extract only these entries

src

File to decompress

Returns

Statistics on decompression procedure

def decompressStream(compressorName: StreamableCompressor, in: InputStream, out: OutputStream): Try[Unit]
val in: InputStream = ???
val out: OutputStream = ???
val decompress: Try[Unit] = decompressStream(StreamableCompressor.GZ,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.DEFLATE,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.BZ2,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.PACK200,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.XZ,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.ZSTANDARD,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.LZMA,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.LZ4,in, out)
//    val decompress: Try[Unit] = decompressStream(StreamableCompressor.SNAPPY,in, out)
def deflateCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def deflateDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def gzCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def gzDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def lz4Compress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

file to compress

Returns

Statistics on compression procedure

def lz4Decompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def lzmaCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

file to compress

Returns

Statistics on compression procedure

def lzmaDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def pack200Compress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to compress

Returns

Statistics on compression procedure

def pack200Decompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def sevenZipCompress(src: List[String], dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File and folder to compress

Returns

Statistics on compression procedure

def sevenZipDecompress(src: String, dest: String, entries: Option[List[String]]): Try[DecompressionStats]
Value Params
dest

Destination folder

src

Compressed file

Returns

Statistics on decompression procedure

def snappyCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to compress

Returns

Statistics on compression procedure

def snappyDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def tarCompress(src: List[String], dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File and folder to compress

Returns

Statistics on compression procedure

def tarDecompress(src: String, dest: String, entries: Option[List[String]]): Try[DecompressionStats]
Value Params
dest

Destination folder

entries

If != None extract only these entries

src

File to decompress

Returns

Statistics on decompression procedure

def unzipString(src: Array[Byte], bufferSize: Int): Try[Array[Byte]]
Value Params
bufferSize

Optional buffer size

src

Compressed Array[Byte]

Returns

Uncompressed Array[Byte]

def writeStreamToFile(in: InputStream, dest: String): Try[Unit]
def xzCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to compress

Returns

Statistics on compression procedure

def xzDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def zStandardCompress(src: String, dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File to compress

Returns

Statistics on compression procedure

def zStandardDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def zipCompress(src: List[String], dest: String): Try[CompressionStats]
Value Params
dest

Destination folder

src

File and folder to compress

Returns

Statistics on compression procedure

def zipDecompress(src: String, dest: String): Try[DecompressionStats]
Value Params
dest

Destination folder

src

File to decompress

Returns

Statistics on decompression procedure

def zipDecompressEntry(src: String, entryName: String): Try[Array[Byte]]
Value Params
entryName

The entry name to decompress

src

Compressed file

Returns

Uncompressed Array[Byte]

def zipEntries(src: String): Try[List[ZipEntry]]
Value Params
src

Compressed file

Returns

ZipEntry List

def zipString(src: String, charSetName: String): Try[Array[Byte]]
Value Params
src

String to compress

Returns

compressed Array[Byte]