1 ;; -*- Mode: Common-Lisp -*-
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 ;; Purpose: Uses zlib to compress and uncompress vectors of octets
7 ;; Author: Kevin Rosenberg
8 ;; Date Started: July 2011
10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
12 (in-package #:memstore)
14 ;; KMR: zlib gives compression errors on random tests:
15 ;; indices outside of input array size
16 ;; Using salza2 as default compressor
18 (defun compress-zlib (data)
19 (zlib:compress data :fixed))
21 (defun compress (data)
22 (let ((comp (salza2:compress-data
24 (make-instance 'salza2:zlib-compressor))))
25 (values comp (length comp))))
27 ;; KMR: zlib appears to works fine with salza2 zlib compressor, but
28 ;; moving to chipz as default decompressor as appears better supported
29 (defun uncompress-zlib (data)
30 (zlib:uncompress data))
32 (defun uncompress (data)
33 (chipz:decompress nil 'chipz:zlib data))