logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Compress::Snappy - Perl interface to Google's Snappy (de)compressor

Author

       gray, <gray at cpan.org>

perl v5.40.0                                       2024-10-20                              Compress::Snappy(3pm)

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.

   decompressuncompress
           $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.

Name

       Compress::Snappy - Perl interface to Google's Snappy (de)compressor

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>

Synopsis

           use Compress::Snappy;

           my $dest = compress($source);
           my $dest = decompress($source);

See Also