---
title: "Package Reference"
description: "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](/unikvs/en/how-to/installation) for setup, and [storage comparison](/unikvs/en/reference/comparison) for choosing a backend.

## Core [#core]

**[UniKVS](/unikvs/en/packages/unikvs)**

The core package with the config builder and KVS client.

## Shared [#shared]

Shared foundations used by all packages.

**[@unikvs/core](/unikvs/en/packages/core)**

Shared types and errors for all packages.

**[@unikvs/utils](/unikvs/en/packages/utils)**

Shared helper functions for plugin authors.

**[@unikvs/testing](/unikvs/en/packages/testing)**

Test contexts and helpers for plugins.

## Storage [#storage]

Backends that provide data persistence. They differ by runtime environment.

**[@unikvs/memory](/unikvs/en/packages/memory)**

Store arbitrary values in memory.

**[@unikvs/http](/unikvs/en/packages/http)**

Use an HTTP server as a backend.

**[@unikvs/null](/unikvs/en/packages/null)**

Discard everything; use as a no-op sink.

**[@unikvs/lru-cache](/unikvs/en/packages/lru-cache)**

Store data in memory with entry or capacity limits.

**[@unikvs/opfs](/unikvs/en/packages/opfs)**

Store data in the browser OPFS.

**[@unikvs/indexeddb](/unikvs/en/packages/indexeddb)**

Store data in the browser IndexedDB.

**[@unikvs/localstorage](/unikvs/en/packages/localstorage)**

Store data in the browser Local Storage.

**[@unikvs/session-storage](/unikvs/en/packages/session-storage)**

Store strings in the browser sessionStorage.

**[@unikvs/fs.node](/unikvs/en/packages/fs-node)**

Store data in the Node.js local filesystem.

**[@unikvs/s3.node](/unikvs/en/packages/s3-node)**

Store data in S3-compatible object storage.

**[@unikvs/redis.node](/unikvs/en/packages/redis-node)**

Store data in Redis.

**[@unikvs/fs.bun](/unikvs/en/packages/fs-bun)**

Store data in the Bun local filesystem.

**[@unikvs/s3.bun](/unikvs/en/packages/s3-bun)**

Store data in S3-compatible object storage with Bun.

**[@unikvs/redis.bun](/unikvs/en/packages/redis-bun)**

Store data in Redis using the Bun Redis client.

**[@unikvs/valkey](/unikvs/en/packages/valkey)**

Store data in Valkey.

**[@unikvs/memcached](/unikvs/en/packages/memcached)**

Store data in Memcached.

**[@unikvs/etcd](/unikvs/en/packages/etcd)**

Store data in etcd.

**[@unikvs/cache-storage](/unikvs/en/packages/cache-storage)**

Store data in the browser Cache Storage.

**[@unikvs/cookies](/unikvs/en/packages/cookies)**

Use cookies as a backend.

**[@unikvs/cloudflare-kv](/unikvs/en/packages/cloudflare-kv)**

Store data in Cloudflare KV.

**[@unikvs/cloudflare-r2](/unikvs/en/packages/cloudflare-r2)**

Store data in Cloudflare R2.

**[@unikvs/cloudflare-cache](/unikvs/en/packages/cloudflare-cache)**

Store data in the Cloudflare Cache API.

**[@unikvs/vercel-blob](/unikvs/en/packages/vercel-blob)**

Store data in Vercel Blob.

**[@unikvs/vercel-runtime-cache](/unikvs/en/packages/vercel-runtime-cache)**

Store data in the Vercel runtime cache.

**[@unikvs/retry](/unikvs/en/packages/retry)**

Wrapper that retries transient failures.

**[@unikvs/soft-delete](/unikvs/en/packages/soft-delete)**

Wrapper that treats deletes as soft deletes.

## Middleware [#middleware]

Transparently transform values. Grouped by transformation.

**[@unikvs/json](/unikvs/en/packages/json)**

Convert values to JSON, and to JSON Lines for streams.

**[@unikvs/superjson](/unikvs/en/packages/superjson)**

Convert with SuperJSON, preserving Date, Map, Set, BigInt, and undefined.

**[@unikvs/cbor](/unikvs/en/packages/cbor)**

Convert values to CBOR, and to CBOR sequences for streams.

**[@unikvs/v8-serde](/unikvs/en/packages/v8-serde)**

Serialize fast with Node.js v8.serialize.

**[@unikvs/base64](/unikvs/en/packages/base64)**

Convert bytes to Base64 text.

**[@unikvs/base64url](/unikvs/en/packages/base64url)**

Convert bytes to URL-safe Base64url.

**[@unikvs/hex](/unikvs/en/packages/hex)**

Convert bytes to hexadecimal (Hex) strings.

**[@unikvs/compression](/unikvs/en/packages/compression)**

Compress and decompress with gzip, deflate, and deflate-raw.

**[@unikvs/checksum](/unikvs/en/packages/checksum)**

Verify MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512.

**[@unikvs/zstd.wasm](/unikvs/en/packages/zstd-wasm)**

Compress and decompress with WASM zstd.

**[@unikvs/zstd.node](/unikvs/en/packages/zstd-node)**

Compress and decompress with Node.js zstd.

**[@unikvs/zstd.bun](/unikvs/en/packages/zstd-bun)**

Compress and decompress with Bun zstd.

**[@unikvs/brotli.node](/unikvs/en/packages/brotli-node)**

Compress and decompress with Node.js Brotli.

**[@unikvs/brotli.bun](/unikvs/en/packages/brotli-bun)**

Compress and decompress with Bun Brotli.

**[@unikvs/brotli.wasm](/unikvs/en/packages/brotli-wasm)**

Compress and decompress with WASM Brotli.

## Dev tools [#dev]

Packages for observing and controlling behavior.

**[@unikvs/debug](/unikvs/en/packages/debug)**

Log read/write operations and data for debugging.

**[@unikvs/passthrough](/unikvs/en/packages/passthrough)**

Pass data through without transformation.

**[@unikvs/tap](/unikvs/en/packages/tap)**

Pass data through while invoking a callback with the context.

**[@unikvs/allow-repair](/unikvs/en/packages/allow-repair)**

Control whether read-repair write-backs are allowed.

**[@unikvs/key-prefix](/unikvs/en/packages/key-prefix)**

Prepend a fixed string to every key.

**[@unikvs/writeonly](/unikvs/en/packages/writeonly)**

Make an existing storage write-only.

**[@unikvs/readonly](/unikvs/en/packages/readonly)**

Make an existing storage read-only.

**[@unikvs/expiry](/unikvs/en/packages/expiry)**

Validate that values with expiry are still valid.

**[@unikvs/ttl](/unikvs/en/packages/ttl)**

Attach and manage TTLs on values.

**[@unikvs/rate-limit](/unikvs/en/packages/rate-limit)**

Limit operation frequency.

**[@unikvs/metrics](/unikvs/en/packages/metrics)**

Collect operation metrics.

**[@unikvs/tracing](/unikvs/en/packages/tracing)**

Record operation traces.
