X-Git-Url: http://git.kpe.io/?p=memstore.git;a=blobdiff_plain;f=src%2Fcompress.lisp;fp=src%2Fcompress.lisp;h=c3920f7edabb6e168e396d39757a75a1a94445cd;hp=0000000000000000000000000000000000000000;hb=a78b79b063a808bec0f463db1bb9dc78ba832a46;hpb=881e2c561c5c9de3fe4bb962da256552fa03d796 diff --git a/src/compress.lisp b/src/compress.lisp new file mode 100644 index 0000000..c3920f7 --- /dev/null +++ b/src/compress.lisp @@ -0,0 +1,29 @@ +;; -*- Mode: Common-Lisp -*- +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; FILE IDENTIFICATION +;; +;; Name: compress.lisp +;; Purpose: Uses zlib to compress and uncompress vectors of octets +;; Author: Kevin Rosenberg +;; Date Started: July 2011 +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(in-package #:memstore) + +;; KMR: zlib gives compression errors on random tests: +;; indices outside of input array size +;; Using salza2 as default compressor +(defun compress (data) + (let ((comp (salza2:compress-data + data + (make-instance 'salza2:zlib-compressor)))) + (values comp (length comp)))) + +;; KMR: zlib appears to works fine with salza2 zlib compressor, but +;; moving to chipz as default decompressor as appears better supported +;;(defun uncompress-zlib (data) +;; (zlib:uncompress data)) + +(defun uncompress (data) + (chipz:decompress nil 'chipz:zlib data))