Remove zlib as a dependency
[memstore.git] / src / compress.lisp
1 ;; -*- Mode: Common-Lisp -*-
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; FILE IDENTIFICATION
4 ;;
5 ;; Name:          compress.lisp
6 ;; Purpose:       Uses zlib to compress and uncompress vectors of octets
7 ;; Author:        Kevin Rosenberg
8 ;; Date Started:  July 2011
9 ;;
10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11
12 (in-package #:memstore)
13
14 ;; KMR: zlib gives compression errors on random tests:
15 ;;    indices outside of input array size
16 ;; Using salza2 as default compressor
17 ;;(defun compress-zlib (data)
18 ;;  (zlib:compress data :fixed))
19
20 (defun compress (data)
21   (let ((comp (salza2:compress-data
22                data
23                (make-instance 'salza2:zlib-compressor))))
24     (values comp (length comp))))
25
26 ;; KMR: zlib appears to works fine with salza2 zlib compressor, but
27 ;; moving to chipz as default decompressor as appears better supported
28
29 ;;(defun uncompress-zlib (data)
30 ;;  (zlib:uncompress data))
31
32 (defun uncompress (data)
33   (chipz:decompress nil 'chipz:zlib data))