[wip] Explore Snappy implementations
This commit is contained in:
parent
7d2800d106
commit
676898495c
3 changed files with 21 additions and 2 deletions
|
|
@ -11,7 +11,9 @@
|
|||
[[org.clojure/tools.reader "1.3.7"]
|
||||
[com.taoensso/encore "3.77.0"]
|
||||
[org.tukaani/xz "1.9"]
|
||||
[io.airlift/aircompressor "0.25"]]
|
||||
[io.airlift/aircompressor "0.25"]
|
||||
[org.iq80.snappy/snappy "0.4"]
|
||||
[org.xerial.snappy/snappy-java "1.1.10.5"]]
|
||||
|
||||
:profiles
|
||||
{;; :default [:base :system :user :provided :dev]
|
||||
|
|
|
|||
|
|
@ -116,6 +116,8 @@
|
|||
(compress [_ ba] (airlift-compress @airlift-lzo-compressor_ ba true))
|
||||
(decompress [_ ba] (airlift-decompress @airlift-lzo-decompressor_ ba nil))))
|
||||
|
||||
;; Using `io.airlift/aircompressor`, vulnerable to https://github.com/airlift/aircompressor/issues/183
|
||||
#_
|
||||
(do
|
||||
(enc/def* ^:private airlift-snappy-compressor_ (enc/thread-local (io.airlift.compress.snappy.SnappyCompressor.)))
|
||||
(enc/def* ^:private airlift-snappy-decompressor_ (enc/thread-local (io.airlift.compress.snappy.SnappyDecompressor.)))
|
||||
|
|
@ -127,6 +129,21 @@
|
|||
(when-not prepend-size?
|
||||
(io.airlift.compress.snappy.SnappyDecompressor/getUncompressedLength ba 0))))))
|
||||
|
||||
;; Using `org.iq80.snappy/snappy`, vulnerable to https://github.com/airlift/aircompressor/issues/183
|
||||
#_
|
||||
(deftype SnappyCompressor [_]
|
||||
ICompressor
|
||||
(header-id [_] :snappy)
|
||||
(compress [_ ba] (org.iq80.snappy.Snappy/compress ba))
|
||||
(decompress [_ ba] (org.iq80.snappy.Snappy/uncompress ba 0 (alength ^bytes ba))))
|
||||
|
||||
;; Using `org.xerial.snappy/snappy-java`, some compatibility issues due to JNI
|
||||
(deftype SnappyCompressor [_]
|
||||
ICompressor
|
||||
(header-id [_] :snappy)
|
||||
(compress [_ ba] (org.xerial.snappy.Snappy/compress ba))
|
||||
(decompress [_ ba] (org.xerial.snappy.Snappy/uncompress ba)))
|
||||
|
||||
;;;; LZMA2
|
||||
|
||||
(deftype LZMA2Compressor [compression-level]
|
||||
|
|
|
|||
|
|
@ -429,7 +429,7 @@
|
|||
compr/snappy-compressor
|
||||
compr/lzma2-compressor]]
|
||||
|
||||
(dotimes [_ 100]
|
||||
(dotimes [_ 2e4]
|
||||
(is
|
||||
(nil? (enc/catching (compr/decompress c (crypto/rand-bytes 1024))))
|
||||
"Decompression never core dumps, even against invalid data"))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue