Skip to content

Commit defd88a

Browse files
committed
[nop] Big code reorg and refactor
Preparing for upcoming switch to ByteBuffer implementation. No behavioural changes intended with this commit.
1 parent 5aa087f commit defd88a

8 files changed

Lines changed: 1747 additions & 1683 deletions

File tree

src/taoensso/nippy.clj

Lines changed: 378 additions & 1535 deletions
Large diffs are not rendered by default.

src/taoensso/nippy/compression.clj

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
(ns ^:no-doc taoensso.nippy.compression
2-
"Private, implementation detail."
2+
"Private compression utils, don't use."
33
(:require
44
[taoensso.truss :as truss]
55
[taoensso.encore :as enc])
6+
67
(:import
78
[java.nio ByteBuffer]
89
[java.io
@@ -216,3 +217,15 @@
216217
"Different LZ4 modes no longer supported, prefer `lz4-compressor`."
217218
{:deprecated "v3.4.0-RC1 (2024-02-06)"}
218219
(LZ4Compressor.))
220+
221+
(defn get-auto-compressor [compressor-id]
222+
(case compressor-id
223+
nil nil
224+
:snappy snappy-compressor
225+
:lzma2 lzma2-compressor
226+
:lz4 lz4-compressor
227+
:zstd zstd-compressor
228+
:no-header (truss/ex-info! ":auto not supported on headerless data." {})
229+
:else (truss/ex-info! ":auto not supported for non-standard compressors." {})
230+
(do (truss/ex-info! (str "Unrecognized :auto compressor id: " compressor-id)
231+
{:compressor-id compressor-id}))))

src/taoensso/nippy/crypto.clj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(ns ^:no-doc taoensso.nippy.crypto
2-
"Low-level crypto utils.
3-
Private & alpha, very likely to change!"
2+
"Private low-level crypto utils, don't use!!"
43
(:refer-clojure :exclude [rand-nth])
54
(:require
65
[taoensso.truss :as truss]

src/taoensso/nippy/encryption.clj

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
(ns ^:no-doc taoensso.nippy.encryption
2-
"Private, implementation detail."
2+
"Private encryption utils, don't use."
33
(:require
44
[taoensso.truss :as truss]
55
[taoensso.encore :as enc]
@@ -113,6 +113,16 @@
113113
(do (fn [ salt-ba pwd] (crypto/take-ba 16 (crypto/sha512-key-ba salt-ba pwd (* Short/MAX_VALUE 5)))))
114114
(enc/fmemoize (fn [_salt-ba pwd] (crypto/take-ba 16 (crypto/sha512-key-ba nil pwd (* Short/MAX_VALUE 64)))))))
115115

116+
(defn get-auto-encryptor [encryptor-id]
117+
(case encryptor-id
118+
nil nil
119+
:aes128-gcm-sha512 aes128-gcm-encryptor
120+
:aes128-cbc-sha512 aes128-cbc-encryptor
121+
:no-header (truss/ex-info! ":auto not supported on headerless data." {})
122+
:else (truss/ex-info! ":auto not supported for non-standard encryptors." {})
123+
(do (truss/ex-info! (str "Unrecognized :auto encryptor id: " encryptor-id)
124+
{:encryptor-id encryptor-id}))))
125+
116126
;;;; Default implementation
117127

118128
(comment

0 commit comments

Comments
 (0)