Package Reference
List and guide to UniKVS packages.
UniKVS consists of the core unikvs package plus plugin and utility packages. Install everything except unikvs only as needed.
See installation for setup, and storage comparison for choosing a backend.
Core
Shared
Shared foundations used by all packages.
@unikvs/core
Shared types and errors for all packages.
@unikvs/utils
Shared helper functions for plugin authors.
@unikvs/testing
Test contexts and helpers for plugins.
Storage
Backends that provide data persistence. They differ by runtime environment.
@unikvs/memory
Store arbitrary values in memory.
@unikvs/http
Use an HTTP server as a backend.
@unikvs/null
Discard everything; use as a no-op sink.
@unikvs/lru-cache
Store data in memory with entry or capacity limits.
@unikvs/opfs
Store data in the browser OPFS.
@unikvs/indexeddb
Store data in the browser IndexedDB.
@unikvs/localstorage
Store data in the browser Local Storage.
@unikvs/session-storage
Store strings in the browser sessionStorage.
@unikvs/fs.node
Store data in the Node.js local filesystem.
@unikvs/s3.node
Store data in S3-compatible object storage.
@unikvs/redis.node
Store data in Redis.
@unikvs/fs.bun
Store data in the Bun local filesystem.
@unikvs/s3.bun
Store data in S3-compatible object storage with Bun.
@unikvs/redis.bun
Store data in Redis using the Bun Redis client.
@unikvs/valkey
Store data in Valkey.
@unikvs/memcached
Store data in Memcached.
@unikvs/etcd
Store data in etcd.
@unikvs/cache-storage
Store data in the browser Cache Storage.
@unikvs/cookies
Use cookies as a backend.
@unikvs/cloudflare-kv
Store data in Cloudflare KV.
@unikvs/cloudflare-r2
Store data in Cloudflare R2.
@unikvs/cloudflare-cache
Store data in the Cloudflare Cache API.
@unikvs/vercel-blob
Store data in Vercel Blob.
@unikvs/vercel-runtime-cache
Store data in the Vercel runtime cache.
@unikvs/retry
Wrapper that retries transient failures.
@unikvs/soft-delete
Wrapper that treats deletes as soft deletes.
Middleware
Transparently transform values. Grouped by transformation.
@unikvs/json
Convert values to JSON, and to JSON Lines for streams.
@unikvs/superjson
Convert with SuperJSON, preserving Date, Map, Set, BigInt, and undefined.
@unikvs/cbor
Convert values to CBOR, and to CBOR sequences for streams.
@unikvs/v8-serde
Serialize fast with Node.js v8.serialize.
@unikvs/base64
Convert bytes to Base64 text.
@unikvs/base64url
Convert bytes to URL-safe Base64url.
@unikvs/hex
Convert bytes to hexadecimal (Hex) strings.
@unikvs/compression
Compress and decompress with gzip, deflate, and deflate-raw.
@unikvs/checksum
Verify MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512.
@unikvs/zstd.wasm
Compress and decompress with WASM zstd.
@unikvs/zstd.node
Compress and decompress with Node.js zstd.
@unikvs/zstd.bun
Compress and decompress with Bun zstd.
@unikvs/brotli.node
Compress and decompress with Node.js Brotli.
@unikvs/brotli.bun
Compress and decompress with Bun Brotli.
@unikvs/brotli.wasm
Compress and decompress with WASM Brotli.
Dev tools
Packages for observing and controlling behavior.
@unikvs/debug
Log read/write operations and data for debugging.
@unikvs/passthrough
Pass data through without transformation.
@unikvs/tap
Pass data through while invoking a callback with the context.
@unikvs/allow-repair
Control whether read-repair write-backs are allowed.
@unikvs/key-prefix
Prepend a fixed string to every key.
@unikvs/writeonly
Make an existing storage write-only.
@unikvs/readonly
Make an existing storage read-only.
@unikvs/expiry
Validate that values with expiry are still valid.
@unikvs/ttl
Attach and manage TTLs on values.
@unikvs/rate-limit
Limit operation frequency.
@unikvs/metrics
Collect operation metrics.
@unikvs/tracing
Record operation traces.