</pre></div></div><divclass="public anchor"id="var--.3ECompressable-LZMA2"><h3>->Compressable-LZMA2</h3><divclass="usage"><code>(->Compressable-LZMA2 value)</code></div><divclass="doc"><preclass="plaintext">Positional factory function for class taoensso.nippy.Compressable-LZMA2.
</pre></div></div><divclass="public anchor"id="var--.3EStressRecord"><h3>->StressRecord</h3><divclass="usage"><code>(->StressRecord data)</code></div><divclass="doc"><preclass="plaintext">Positional factory function for class taoensso.nippy.StressRecord.
</pre></div></div><divclass="public anchor"id="var-aes128-encryptor"><h3>aes128-encryptor</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Default 128bit AES encryptor with multi-round SHA-512 key-gen.
Password form [:salted "my-password"]
---------------------------------------
USE CASE: You want more than a small, finite number of passwords (e.g. each
item encrypted will use a unique user-provided password).
IMPLEMENTATION: Uses a relatively cheap key hash, but automatically salts
every key.
PROS: Each key is independent so would need to be attacked independently.
CONS: Key caching impossible, so there's an inherent trade-off between
encryption/decryption speed and the difficulty of attacking any
particular key.
Slower than `aes128-cached`, and easier to attack any particular key - but
keys are independent.
Password form [:cached "my-password"]
---------------------------------------
USE CASE: You want only a small, finite number of passwords (e.g. a limited
number of staff/admins, or you'll be using a single password to
encrypt many items).
IMPLEMENTATION: Uses a _very_ expensive (but cached) key hash, and no salt.
PROS: Great amortized encryption/decryption speed. Expensive key hash makes
attacking any particular key very difficult.
CONS: Using a small number of keys for many encrypted items means that if any
key _is_ somehow compromised, _all_ items encrypted with that key are
compromised.
Faster than `aes128-salted`, and harder to attack any particular key - but
increased danger if a key is somehow compromised.</pre></div></div><divclass="public anchor"id="var-custom-readers"><h3>custom-readers</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-default-freeze-compressor-selector"><h3>default-freeze-compressor-selector</h3><divclass="usage"><code>(default-freeze-compressor-selector ba)</code></div><divclass="doc"><preclass="plaintext">Strategy:
* Prioritize speed, but allow lz4.
* Skip lz4 unless it's likely that lz4's space benefit will outweigh its
space overhead.</pre></div></div><divclass="public anchor"id="var-default-freeze-compressor-selector_"><h3>default-freeze-compressor-selector_</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">EXPERIMENTAL.
Determines the global default default compressor selector
(fn [^bytes ba])->compressor used by `(freeze <x> {:compressor :auto <...>}).</pre></div></div><divclass="public anchor"id="var-extend-freeze"><h3>extend-freeze</h3><h4class="type">macro</h4><divclass="usage"><code>(extend-freeze type custom-type-id [x out] & body)</code></div><divclass="doc"><preclass="plaintext">Extends Nippy to support freezing of a custom type (ideally concrete) with
(extend-freeze MyType :foo/my-type [x data-output] ; Keyword id
(.writeUTF [data-output] (:data x)))
;; or
(extend-freeze MyType 1 [x data-output] ; Byte id
(.writeUTF [data-output] (:data x)))</pre></div></div><divclass="public anchor"id="var-extend-thaw"><h3>extend-thaw</h3><h4class="type">macro</h4><divclass="usage"><code>(extend-thaw custom-type-id [in] & body)</code></div><divclass="doc"><preclass="plaintext">Extends Nippy to support thawing of a custom type with given id:
(extend-thaw :foo/my-type [data-input] ; Keyword id
(->MyType (.readUTF data-input)))
;; or
(extend-thaw 1 [data-input] ; Byte id
(->MyType (.readUTF data-input)))</pre></div></div><divclass="public anchor"id="var-Freezable"><h3>Freezable</h3><h4class="type">protocol</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">Be careful about extending to interfaces, Ref. <ahref="http://goo.gl/6gGRlU">http://goo.gl/6gGRlU</a>.
</pre></div><divclass="members"><h4>members</h4><divclass="inner"><divclass="public anchor"id="var-freeze-to-out*"><h3>freeze-to-out*</h3><divclass="usage"><code>(freeze-to-out* this out)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div></div></div></div><divclass="public anchor"id="var-freezable.3F"><h3>freezable?</h3><divclass="usage"><code>(freezable? x & [{:keys [allow-clojure-reader? allow-java-serializable?]}])</code></div><divclass="doc"><preclass="plaintext">Alpha - subject to change, MAY BE BUGGY!
pre/post serialization equality (there's no good general way of doing so).</pre></div></div><divclass="public anchor"id="var-freeze"><h3>freeze</h3><divclass="usage"><code>(freeze x & [{:keys [compressor encryptor password skip-header?], :or {compressor :auto, encryptor aes128-encryptor}, :as opts}])</code></div><divclass="doc"><preclass="plaintext">Serializes arg (any Clojure data type) to a byte array. To freeze custom
types, extend the Clojure reader or see `extend-freeze`.</pre></div></div><divclass="public anchor"id="var-freeze-fallback-as-str"><h3>freeze-fallback-as-str</h3><divclass="usage"><code>(freeze-fallback-as-str x out)</code></div><divclass="doc"><preclass="plaintext">Alpha-subject to change.
</pre></div></div><divclass="public anchor"id="var-freeze-to-out.21"><h3>freeze-to-out!</h3><divclass="usage"><code>(freeze-to-out! data-output x & _)</code></div><divclass="doc"><preclass="plaintext">Low-level API. Serializes arg (any Clojure data type) to a DataOutput.
</pre></div></div><divclass="public anchor"id="var-freeze-to-stream.21"><h3>freeze-to-stream!</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">DEPRECATED: Use `freeze-to-out!` instead.
A good general-purpose compressor, competitive with Snappy.
Thanks to Max Penet (@mpenet) for our first implementation,
Ref. <ahref="https://github.com/mpenet/nippy-lz4">https://github.com/mpenet/nippy-lz4</a></pre></div></div><divclass="public anchor"id="var-lz4hc-compressor"><h3>lz4hc-compressor</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Like `lz4-compressor` but trades some write speed for ratio.
environments.</pre></div></div><divclass="public anchor"id="var-map-.3ECompressable-LZMA2"><h3>map->Compressable-LZMA2</h3><divclass="usage"><code>(map->Compressable-LZMA2 m__6249__auto__)</code></div><divclass="doc"><preclass="plaintext">Factory function for class taoensso.nippy.Compressable-LZMA2, taking a map of keywords to field values.
</pre></div></div><divclass="public anchor"id="var-map-.3EStressRecord"><h3>map->StressRecord</h3><divclass="usage"><code>(map->StressRecord m__6249__auto__)</code></div><divclass="doc"><preclass="plaintext">Factory function for class taoensso.nippy.StressRecord, taking a map of keywords to field values.
</pre></div></div><divclass="public anchor"id="var-read-biginteger"><h3>read-biginteger</h3><h4class="type">macro</h4><divclass="usage"><code>(read-biginteger in)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-read-bytes"><h3>read-bytes</h3><h4class="type">macro</h4><divclass="usage"><code>(read-bytes in & [small?])</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-read-compact-long"><h3>read-compact-long</h3><h4class="type">macro</h4><divclass="usage"><code>(read-compact-long in)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-read-utf8"><h3>read-utf8</h3><h4class="type">macro</h4><divclass="usage"><code>(read-utf8 in & [small?])</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-snappy-compressor"><h3>snappy-compressor</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Default org.iq80.snappy.Snappy compressor:
Ratio: low.
Write speed: very high.
Read speed: very high.
A good general-purpose compressor.</pre></div></div><divclass="public anchor"id="var-stress-data"><h3>stress-data</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Reference data used for tests & benchmarks.
</pre></div></div><divclass="public anchor"id="var-stress-data-benchable"><h3>stress-data-benchable</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Reference data with stuff removed that breaks reader or other utils we'll
be benching against.</pre></div></div><divclass="public anchor"id="var-stress-data-comparable"><h3>stress-data-comparable</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Reference data with stuff removed that breaks roundtrip equality.
</pre></div></div><divclass="public anchor"id="var-thaw"><h3>thaw</h3><divclass="usage"><code>(thaw ba & [{:keys [compressor encryptor password v1-compatibility?], :or {compressor :auto, encryptor :auto, v1-compatibility? true}, :as opts}])</code></div><divclass="doc"><preclass="plaintext">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. To thaw custom types, extend the Clojure reader or see `extend-thaw`.
Options include:
:compressor - An ICompressor, :auto (requires Nippy header), or nil.
:encryptor - An IEncryptor, :auto (requires Nippy header), or nil.</pre></div></div><divclass="public anchor"id="var-thaw-from-in.21"><h3>thaw-from-in!</h3><divclass="usage"><code>(thaw-from-in! data-input & _)</code></div><divclass="doc"><preclass="plaintext">Low-level API. Deserializes a frozen object from given DataInput to its
original Clojure data type.</pre></div></div><divclass="public anchor"id="var-thaw-from-stream.21"><h3>thaw-from-stream!</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">DEPRECATED: Use `thaw-from-in!` instead.
</pre></div></div><divclass="public anchor"id="var-when-debug-mode"><h3>when-debug-mode</h3><h4class="type">macro</h4><divclass="usage"><code>(when-debug-mode & body)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-write-biginteger"><h3>write-biginteger</h3><h4class="type">macro</h4><divclass="usage"><code>(write-biginteger out x)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-write-bytes"><h3>write-bytes</h3><h4class="type">macro</h4><divclass="usage"><code>(write-bytes out ba & [small?])</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-write-compact-long"><h3>write-compact-long</h3><h4class="type">macro</h4><divclass="usage"><code>(write-compact-long out x)</code></div><divclass="doc"><preclass="plaintext">Uses 2->9 bytes.
</pre></div></div><divclass="public anchor"id="var-write-id"><h3>write-id</h3><h4class="type">macro</h4><divclass="usage"><code>(write-id out id)</code></div><divclass="doc"><preclass="plaintext"></pre></div></div><divclass="public anchor"id="var-write-utf8"><h3>write-utf8</h3><h4class="type">macro</h4><divclass="usage"><code>(write-utf8 out x & [small?])</code></div><divclass="doc"><preclass="plaintext"></pre></div></div></div></body></html>