taoensso.nippy documentation

Simple, high-performance Clojure serialization library. Originally adapted
from Deep-Freeze.

extend-freeze

macro

(extend-freeze type custom-type-id [x stream] & body)
Alpha - subject to change.
Extends Nippy to support freezing of a custom type with id ∈[1, 128]:
(defrecord MyType [data])
(extend-freeze MyType 1 [x data-output-stream]
  (.writeUTF [data-output-stream] (:data x)))

extend-thaw

macro

(extend-thaw custom-type-id [stream] & body)
Alpha - subject to change.
Extends Nippy to support thawing of a custom type with id ∈[1, 128]:
(extend-thaw 1 [data-input-stream]
  (->MyType (.readUTF data-input-stream)))

freeze

(freeze x & [{:keys [password compressor encryptor legacy-mode], :or {compressor snappy-compressor, encryptor aes128-encryptor}}])
Serializes arg (any Clojure data type) to a byte array. Set :legacy-mode to
true to produce bytes readble by Nippy < 2.x. For custom types extend the
Clojure reader or see `extend-freeze`.

freeze-to-bytes

(freeze-to-bytes x & {:keys [compress?], :or {compress? true}})
DEPRECATED: Use `freeze` instead.

freeze-to-stream!

(freeze-to-stream! data-output-stream x & _)
Low-level API. Serializes arg (any Clojure data type) to a DataOutputStream.

stress-data

Reference data used for tests & benchmarks.

thaw

(thaw ba & [{:keys [password compressor encryptor legacy-opts], :or {legacy-opts {:compressed? true}, compressor snappy-compressor, encryptor aes128-encryptor}, :as opts}])
Deserializes a frozen object from given byte array to its original Clojure
data type. Supports data frozen with current and all previous versions of
Nippy. For custom types extend the Clojure reader or see `extend-thaw`.

thaw-from-bytes

(thaw-from-bytes ba & {:keys [compressed?], :or {compressed? true}})
DEPRECATED: Use `thaw` instead.

thaw-from-stream!

(thaw-from-stream! data-input-stream)
Low-level API. Deserializes a frozen object from given DataInputStream to its
original Clojure data type.