Jump to content

Snappy: Difference between revisions

From EDM2
Created page with "A run time compression C++ class library that offers fairly moderate compression in return for high compression speeds and in particular excellent decompression speeds. In..."
 
No edit summary
Line 1: Line 1:
A run time compression [[C++]] class library that offers fairly moderate compression in return for high compression speeds and in particular excellent decompression speeds. Intended to be used for internal data compression in databases and similar applications rather than file compression, but in those sort of cases a low load decompression can in addition to saving space actually speed up reading and writing to and from slow peripherals such as hard drives.
A run time compression [[C++]] class library that offers fairly moderate compression in return for high compression speeds and in particular excellent decompression speeds, the library is sometimes known by the colloquial name '''Zippy'''. Intended to be used for internal data compression in databases and similar applications rather than file compression, but in those sort of cases a low load decompression can in addition to saving space actually speed up reading and writing to and from slow peripherals such as hard drives.


====Bindings and translations====
====Bindings and translations====
The software comes with [[C]] bindings, but there also exists an unofficial port to C. Bindings and or ports/re-implementations are available for amongst others [[Haskell]] (Binding), [[Java]] (Binding+port), [[LISP|Common Lisp]] (Binding+port), [[Lua]] (Binding), [[Node.js]] (Binding), [[Perl]] (Binding), [[PHP]] (Binding), [[Python]] (Binding), [[Ruby]] (Binding) and [[Smalltalk]] (Binding).
The software comes with [[C]] bindings, but there also exists an unofficial port to C. Bindings and or ports/re-implementations are available for amongst others [[Haskell]] (Binding), [[Java]] (Binding+port), [[LISP|Common Lisp]] (Binding+port), [[Lua]] (Binding), [[Node.js]] (Binding), [[Perl]] (Binding), [[PHP]] (Binding), [[Python]] (Binding), [[Ruby]] (Binding) and [[Smalltalk]] (Binding).
The Snappy C++ class and the C bindings and port appear to compile fairly cleanly on OS/2 with the usual caveats about compiler and system differences and so on, however when it comes to foreign language bindings and ports you may for some of them need to do some additional work since some of them the common Windows and Unix like implementations differ quite a bit from the OS/2 ones and a number of the current OS/2 implementations are getting quite old, the Java ports run like a charm though. In fact the library is generic enough to be fairly easily portable to most systems, although on single tasking systems like [[DOS]] they make little sense unless you are using something like [[TopSpeed C++]] that can actually create DOS threads.


==Links==
==Links==
Line 8: Line 10:
* [https://github.com/google/snappy Snappy repository] on [[GitHub]]
* [https://github.com/google/snappy Snappy repository] on [[GitHub]]
* [https://github.com/andikleen C port by Andi Kleen]
* [https://github.com/andikleen C port by Andi Kleen]
* [https://github.com/brown/snappy Common Lisp port by Robert Brown]
* [https://code.google.com/p/jsnappy/ Jsnappy] - A pure Java re-implementation of Snappy.
* [https://github.com/dain/snappy Snappy in Java by Dain Sundstrom] - Another Java re-implementation, supposedly faster than Jsnappy.


==License and availability==
==License and availability==
Line 15: Line 20:
* [[Google]]
* [[Google]]
* Andi Kleen (C port)
* Andi Kleen (C port)
* Robert Brown (LISP port)
* Dain Sundstrom (Snappy in Java)


[[Category:Tools]][[Category:C++]][[Category:Software written in C++]][[Category:Open Source Software]][[Category:MS Windows Tools]][[Category:BeOS Tools]][[Category:Generic Unix Tools]][[Category:Amiga Tools]][[Category:Atari ST Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]]
[[Category:Tools]][[Category:C++]][[Category:Software written in C++]][[Category:Open Source Software]][[Category:MS Windows Tools]][[Category:BeOS Tools]][[Category:Generic Unix Tools]][[Category:Amiga Tools]][[Category:Atari ST Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]][[Category:Tools]]

Revision as of 17:54, 27 April 2015

A run time compression C++ class library that offers fairly moderate compression in return for high compression speeds and in particular excellent decompression speeds, the library is sometimes known by the colloquial name Zippy. Intended to be used for internal data compression in databases and similar applications rather than file compression, but in those sort of cases a low load decompression can in addition to saving space actually speed up reading and writing to and from slow peripherals such as hard drives.

Bindings and translations

The software comes with C bindings, but there also exists an unofficial port to C. Bindings and or ports/re-implementations are available for amongst others Haskell (Binding), Java (Binding+port), Common Lisp (Binding+port), Lua (Binding), Node.js (Binding), Perl (Binding), PHP (Binding), Python (Binding), Ruby (Binding) and Smalltalk (Binding).

The Snappy C++ class and the C bindings and port appear to compile fairly cleanly on OS/2 with the usual caveats about compiler and system differences and so on, however when it comes to foreign language bindings and ports you may for some of them need to do some additional work since some of them the common Windows and Unix like implementations differ quite a bit from the OS/2 ones and a number of the current OS/2 implementations are getting quite old, the Java ports run like a charm though. In fact the library is generic enough to be fairly easily portable to most systems, although on single tasking systems like DOS they make little sense unless you are using something like TopSpeed C++ that can actually create DOS threads.

Links

License and availability

Authors & publisher

  • Google
  • Andi Kleen (C port)
  • Robert Brown (LISP port)
  • Dain Sundstrom (Snappy in Java)