Liking cljdoc? Tell your friends :D

taoensso.nippy.io

Private low-level utils for reading/writing data, don't use.

bb->dinclj

(bb->din bb)
Returns a `DataInput` adapter over given `ByteBuffer`.
Reads from the buffer's current position and advances it.
source

bb->doutclj

(bb->dout bb)
Returns a `DataOutput` adapter over given `ByteBuffer`.
Writes at the buffer's current position and advances it.
source

bb-big-endian!clj

(bb-big-endian! bb)
source

IWriteTypedNoMetacljprotocol

write-typedclj

(write-typed _ bb dout_)
Writes given object as type-prefixed bytes. Excludes IObj meta.
source

IWriteTypedNoMetaDincljprotocol

write-typed-dinclj

(write-typed-din _ dout)
Writes given object as type-prefixed bytes. Excludes IObj meta. Takes legacy `DataInput`, used for custom extensions.
source

IWriteTypedWithMetacljprotocol

write-typed+metaclj

(write-typed+meta _ bb dout_)
Writes given object as type-prefixed bytes. Includes IObj meta when present.
source

read-bigintegerclj

(read-biginteger ibr)
source

read-bytesclj

(read-bytes ibr)
(read-bytes ibr len)
source

read-bytes-lgclj

(read-bytes-lg ibr)
source

read-bytes-mdclj

(read-bytes-md ibr)
source

read-bytes-smclj

(read-bytes-sm ibr)
source

read-bytes-sm*clj

(read-bytes-sm* ibr)
source

read-customclj

(read-custom ibr prefixed? type-id)
source

read-deftypeclj

(read-deftype ibr class-name legacy?)
source

read-intoclj

(read-into to ibr n)
source

read-kvs-deprclj

(read-kvs-depr to ibr)
source

read-kvs-intoclj

(read-kvs-into to ibr n)
source

read-lg-countcljmacro

(read-lg-count ibr)
source

read-mapclj

(read-map ibr n)
source

read-md-countcljmacro

(read-md-count ibr)
source

read-quarantined-serializable-object-unsafe!clj

(read-quarantined-serializable-object-unsafe! m)
Given a quarantined Serializable object like
{:nippy/unthawable {:class-name <> :content <quarantined-ba>}}, reads and
returns the object WITHOUT regard for `*thaw-serializable-allowlist*`.

**MAY BE UNSAFE!** Don't call this unless you absolutely trust the payload
to not contain any malicious code.

See `*thaw-serializable-allowlist*` for more info.
source

read-recordclj

(read-record ibr class-name)
source

read-sm-countcljmacro

(read-sm-count ibr)
source

read-sm-ucountcljmacro

(read-sm-ucount ibr)
source

read-strclj

(read-str ibr)
(read-str ibr len)
source

read-str-lgclj

(read-str-lg ibr)
source

read-str-mdclj

(read-str-md ibr)
source

read-str-smclj

(read-str-sm ibr)
source

read-str-sm*clj

(read-str-sm* ibr)
source

read-szclj

(read-sz ibr class-name legacy?)
source

read-sz!!clj

(read-sz!! input-stream class-name)
Reads object using Java `Serializable`. May be unsafe!
source

read-typedclj

(read-typed ibr)
Reads one object as type-prefixed bytes from given `IByteReader`.
source

with-bbclj

(with-bb f)
(with-bb init-size f)
(with-bb init-size f finalize)
(with-bb bb cache_ cache f finalize)
Executes `(f bb dout_)` and returns ?ba of bb when `f` returns truthy.
  `bb` ---- Auto-expanding `ByteBuffer`. Will reuse ThreadLocal when possible,
            retaining up to 1 MiB per thread for reuse.
  `dout_` - Call (dout_) to get a `DataOutput` view on `bb`.

`finalize` is called on the final (settled) `bb` to produce the return
value, and defaults to copying `bb`'s written bytes to a new ba. Callers
that only need to consume the bytes (e.g. write them to a `DataOutput`)
can pass a custom `finalize` to avoid that copy.
source

write-bigintegerclj

(write-biginteger bb n)
source

write-bytesclj

(write-bytes bb ba)
source

write-bytes-lgclj

(write-bytes-lg bb ba)
source

write-bytes-mdclj

(write-bytes-md bb ba)
source

write-bytes-smclj

(write-bytes-sm bb ba)
source

write-bytes-sm*clj

(write-bytes-sm* bb ba)
source

write-cachedclj

(write-cached bb dout_ x-val cache_)
source

write-cached-header!clj

(write-cached-header! bb x-val cache_)
Registers `x-val` in the cache and writes its cache ref id.
Returns true iff `x-val` itself must still be written after the id.

Shared by the buffered and streaming writers, so both agree on both the
emitted bytes and the cache idxs they imply. NB the cache mutation happens
here, alongside the id write, so a caller that discards the written bytes
(see `stream-leaf!`) can undo both together.
source

write-collclj

(write-coll bb dout_ id-lg coll)
(write-coll bb dout_ id-empty id-sm id-md id-lg coll)
source

write-coll-headercljmacro

(write-coll-header bb id-0 id-sm id-md id-lg cnt)
Writes coll id + count.
source

write-coll-header*cljmacro

(write-coll-header* bb id-0 id-sm* id-sm_ id-md id-lg cnt)
Writes coll id + count, packing sm counts as unsigned when enabled.
source

write-counted-collclj

(write-counted-coll bb dout_ id-lg coll)
(write-counted-coll bb dout_ id-empty id-sm id-md id-lg coll)
source

write-dyn-array-lgcljmacro

(write-dyn-array-lg bb dout_ arr alen id)
Writes an array of dynamic (individually type-prefixed) elements.
source

write-idcljmacro

(write-id bb id)
source

write-kvsclj

(write-kvs bb dout_ id-lg coll)
(write-kvs bb dout_ id-empty id-sm id-md id-lg coll)
source

write-kwclj

(write-kw bb kw)
source

write-lg-countcljmacro

(write-lg-count bb n)
source

write-longclj

(write-long bb n)
source

write-long-legacyclj

(write-long-legacy bb n)
source

write-mapclj

(write-map bb dout_ m is-metadata?)
Micro-optimized `write-kvs` w/ id-map-0 id-map-sm id-map-md id-map-lg.
source

write-md-countcljmacro

(write-md-count bb n)
source

write-readableclj

(write-readable bb x)
source

write-setclj

(write-set bb dout_ s)
Micro-optimized `write-counted-coll` w/ id-set-0 id-set-sm id-set-md id-set-lg.
source

write-sm-countcljmacro

(write-sm-count bb n)
source

write-sm-ucountcljmacro

(write-sm-ucount bb n)
source

write-strclj

(write-str bb s)
source

write-str-lgclj

(write-str-lg bb s)
source

write-str-mdclj

(write-str-md bb s)
source

write-str-smclj

(write-str-sm bb s)
source

write-str-sm*clj

(write-str-sm* bb s)
source

write-symclj

(write-sym bb s)
source

write-szclj

(write-sz bb x)
Writes given arg using Java `Serializable`.
Returns true iff allowed.
source

write-typed+meta-to-out!clj

(write-typed+meta-to-out! dout x)
Streams given object to given `DataOutput`, holding only a small chunk of
its serialized bytes in memory at a time.

Counted colls and `cache`d values stream at every nesting depth, so their
total serialized size is unbounded. Individual values are still buffered in
full, so each is capped at ~2 GiB: strings, byte arrays, uncounted/lazy
seqs, records, deftypes, custom (`extend-freeze`) types, and metadata maps.

NB writes are NOT atomic: on error `dout` may have received partial bytes.
A shared `with-cache` session's cache IS restored though, so a failed write
that flushed nothing (the usual case, since a chunk holds 64 KiB) leaves the
session fully intact.
source

write-uncounted-collclj

(write-uncounted-coll bb dout_ id-lg coll)
(write-uncounted-coll bb dout_ id-empty id-sm id-md id-lg coll)
source

write-vecclj

(write-vec bb dout_ v)
source

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close