Snappy is a compression / decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it strives 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. On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more.
Snappy is widely used inside Google, in everything from BigTable and MapReduce to our internal RPC systems. (Snappy has previously been referred to as “Zippy” in some presentations and the likes.)
Snappy is written in C++, but C bindings are included, and several bindings to other languages are maintained by third parties.
Requirements:
· C++
What's New in This Release: [ read full changelog ]
· More speed improvements. Exactly how big will depend on the architecture
· 3–10% faster decompression for the base case (x86-64)
· ARMv7 and higher can now use unaligned accesses and will see about 30% faster decompression and 20–40% faster compression
· 32-bit platforms (ARM and 32-bit x86) will see 2–5% faster compression
· These are all cumulative (e.g., ARM gets all three speedups)
· Fixed an issue where the unit test would crash on system with less than 256 MB address space available e.g. some embedded platforms
· Added a framing format description, for use over e.g. HTTP or for a command-line compressor. We do not have any implementations of this at the current point, but there seems to be enough of a general interest in the topic
· Also make the format description slightly clearer
· Remove some compile-time warnings in -Wall mostly signed/unsigned comparisons), for easier embedding into projects that use -Wall -Werror