NAME
Compress::Snappy - Perl interface to Google's Snappy (de)compressor
SYNOPSIS
use Compress::Snappy;
my $dest = compress($source);
my $dest = decompress($source);
DESCRIPTION
The Compress::Snappy
module provides an interface to Google's Snappy (de)compressor.
Snappy does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression. For instance, compared to the fastest mode of zlib, Snappy is an order of magnitude faster for most inputs, but the resulting compressed files are anywhere from 20% to 100% bigger.
FUNCTIONS
compress
$string = compress($buffer)
Compresses the given buffer and returns the resulting string. The input buffer can be either a scalar or a scalar reference.
decompress
uncompress
$string = decompress($buffer)
Decompresses the given buffer and returns the resulting string. The input buffer can be either a scalar or a scalar reference.
On error (in case of corrupted data) undef is returned.
PERFORMANCE
This distribution contains a benchmarking script which compares several compression modules available on CPAN. These are the results on a MacBook 2GHz Core 2 Duo (64-bit) with Perl 5.14.2:
Compressible data (10 KiB) - compression
----------------------------------------
Compress::LZ4::compress 183794/s 1795 MiB/s 1.152%
Compress::Snappy::compress 122496/s 1196 MiB/s 5.332%
Compress::LZF::compress 44383/s 433 MiB/s 1.865%
Compress::Zlib::compress 2765/s 27 MiB/s 1.201%
Compress::Bzip2::compress 110/s 1 MiB/s 2.070%
Compressible data (10 KiB) - decompression
------------------------------------------
Compress::LZ4::decompress 546133/s 5333 MiB/s
Compress::Snappy::decompress 175363/s 1713 MiB/s
Compress::LZF::decompress 135244/s 1321 MiB/s
Compress::Bzip2::decompress 6352/s 62 MiB/s
Compress::Zlib::uncompress 5440/s 53 MiB/s
Uncompressible data (10 KiB) - compression
------------------------------------------
Compress::LZ4::compress 763738/s 7458 MiB/s 107.463%
Compress::Snappy::compress 552269/s 5393 MiB/s 100.000%
Compress::LZF::compress 532919/s 5204 MiB/s 101.493%
Compress::Bzip2::compress 15424/s 151 MiB/s 185.075%
Compress::Zlib::compress 4325/s 42 MiB/s 105.970%
Uncompressible data (10 KiB) - decompression
--------------------------------------------
Compress::LZF::decompress 2583577/s 25230 MiB/s
Compress::LZ4::decompress 2383127/s 23273 MiB/s
Compress::Snappy::decompress 2068002/s 20195 MiB/s
Compress::Bzip2::decompress 48650/s 475 MiB/s
Compress::Zlib::uncompress 6342/s 62 MiB/s
SEE ALSO
http://google.github.io/snappy/
https://github.com/zeevt/csnappy
COPYRIGHT AND LICENSE
Copyright (c) 2011 gray <gray at cpan.org>, all rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
gray, <gray at cpan.org>