Bigmap for Keyv
Last release 24 days ago
03 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
No release notes found
nothing matched a version
Nothing withdrawn
no release was ever pulled
1 years old
14 releases · first in 2025
Release timeline
14 releases since 2025Releases
- 6.0.0-rc.13 Aug 2026pre-release
Release notes
Open source →keyv v6.0.0-rc.1 — 2026-08-03
Promote 6.0 to release candidate: Cloudflare KV adapter, MySQL fixes, and a full dependency refresh.
All published
@keyv/*adapters release in lockstep at this version.@keyv/websiteis private and not published.⚠ BREAKING CHANGES
- mysql: keys are now stored as
VARBINARY(6e519b4, #2015; f579073, #2016) Migration:@keyv/mysqltables created under6.0.0-beta.4use the previous key column type. Recreate the keyv table, orALTERthe key column toVARBINARY, before upgrading. - keyv:
checkExpirednow defaults totrue(f067213, #1984) Migration: expired keys are now checked and cleared by default. PasscheckExpired: falseto restore the previous behavior. - keyv: removed the namespace
removeKeyPrefixbehavior for v6 (73fd79b, #2013) Migration: keys are no longer stripped of their namespace prefix on read. If you relied on the stripped form, read the full namespaced key.
Features
-
add Cloudflare Workers KV storage adapter (e004467, #1985)
import { createKeyv } from "@keyv/cloudflare-kv"; // REST mode — from any Node.js process const keyv = createKeyv({ mode: "rest", accountId: process.env.CF_ACCOUNT_ID, namespaceId: process.env.CF_KV_NAMESPACE_ID, apiToken: process.env.CF_API_TOKEN, }); // Or "bind" mode inside a Worker: createKeyv({ kvNamespace: env.MY_KV }) -
mysql: move to async config changes (b775072, #2018)
-
keyv: add the built-in adapters to the docs (2e03276, #1983)
-
mysql: add docs (e07dc4c, #2019)
Bug Fixes
- mysql: isolate pooled connection lifecycles (86b61c8, #2012)
- mysql: scheduled cleanup firing (97fa359, #2017)
- mysql: deleting expired keys sometimes fails (6e5aff2, #2014)
- mysql: resolve TypeScript errors (dc563b6, #2011)
Documentation
- add keyv-s3fifo to third-party storage adapters (fb420e7, #2020)
Internal
- refactor: add
KeyvAny/KeyvAnyArraytypes and replace explicitany(49ed583, #2010) - 34 dependency and tooling upgrades across the monorepo — highlights: TypeScript 6→7, pnpm 11.5→11.18, better-sqlite3 12→13 (N-API, drops
prebuild-install), mongodb 7.4→7.5, mysql2 3.22→3.23, iovalkey 0.3→0.4,@redis/client6.0→6.1, hookified 3.0.1→3.0.2,actions/setup-nodev6→v7, and the Node engines floor raised to ≥ 22.19.0. Full inventory below.
Contributors
- @jaredwray (47)
- @BJS-kr (1)
Full List of Changes
- keyv - feat: adding in the built in adapters to docs by @jaredwray in #1983
- keyv - fix: moving checkExpired to default to true by @jaredwray in #1984
- cloudflare-kv - feat: Add Cloudflare Workers KV storage adapter by @jaredwray in #1985
- mono - chore: upgrade code quality dependencies by @jaredwray in #1986
- mono - chore: upgrade TypeScript and build tooling by @jaredwray in #1987
- mono - chore: upgrade js-yaml to v5 (breaking) by @jaredwray in #1988
- keyv - chore: upgrade keyv-file by @jaredwray in #1989
- mono - chore: upgrade GitHub Actions (breaking) by @jaredwray in #1990
- dynamo - chore: upgrade AWS SDK dependencies by @jaredwray in #1991
- mongo - chore: upgrade mongodb by @jaredwray in #1992
- postgres - chore: upgrade pg by @jaredwray in #1993
- sqlite - chore: upgrade better-sqlite3 by @jaredwray in #1994
- redis - chore: upgrade @redis/client by @jaredwray in #1995
- memcache - chore: upgrade memcache by @jaredwray in #1996
- mono - chore: upgrade hookified by @jaredwray in #1997
- serialize - chore: upgrade msgpackr by @jaredwray in #1998
- test-suite - chore: upgrade bignumber.js by @jaredwray in #1999
- bigmap - chore: upgrade hashery (breaking) by @jaredwray in #2000
- compress-gzip - chore: upgrade pako (breaking) by @jaredwray in #2001
- mono - refactor: add KeyvAny/KeyvAnyArray types and replace explicit any by @jaredwray in #2010
- mysql - fix: resolve TypeScript errors by @jaredwray in #2011
- mysql - fix: isolate pooled connection lifecycles by @jaredwray in #2012
- fix: removing the namespace removeKeyPrefix with v6 by @jaredwray in #2013
- mysql - fix: deleting expired keys sometimes fail by @jaredwray in #2014
- mysql - fix: moving to VARBINARY for key by @jaredwray in #2015
- mysql - fix: moving to varbinary for key (fixes) by @jaredwray in #2016
- mysql - fix: scheduled cleanup firing by @jaredwray in #2017
- mysql - feat: moving to async config changes by @jaredwray in #2018
- mysql - feat: adding in docs by @jaredwray in #2019
- docs: add keyv-s3fifo to third-party storage adapters by @BJS-kr in #2020
- mono - chore: upgrade code quality dependencies by @jaredwray in #2021
- mono - chore: upgrade TypeScript and build tooling by @jaredwray in #2022
- mono - chore: upgrade pnpm to 11.18.0 by @jaredwray in #2023
- mono - chore: upgrade GitHub Actions by @jaredwray in #2024
- dynamo - chore: upgrade AWS SDK DynamoDB dependencies by @jaredwray in #2025
- redis - chore: upgrade @redis/client to 6.1.0 by @jaredwray in #2026
- mongo - chore: upgrade mongodb to 7.5.0 by @jaredwray in #2027
- mysql - chore: upgrade mysql2 to 3.23.2 by @jaredwray in #2028
- valkey - chore: upgrade iovalkey to 0.4.0 by @jaredwray in #2029
- memcache - chore: upgrade memcache to 1.9.0 by @jaredwray in #2030
- mono - chore: raise Node engines floor to 22.19.0 by @jaredwray in #2031
- sqlite - chore: upgrade better-sqlite3 to 13.0.2 by @jaredwray in #2032
- mono - chore: upgrade hookified to 3.0.2 by @jaredwray in #2033
- bigmap - chore: upgrade hashery to 3.0.1 by @jaredwray in #2034
- test-suite - chore: upgrade bignumber.js to 11.1.5 by @jaredwray in #2035
- mono - chore: upgrade lz4-napi to 2.9.1 by @jaredwray in #2036
- serialize - chore: upgrade msgpackr to 2.0.5 by @jaredwray in #2037
- compress - chore: upgrade pako to 3.0.1 by @jaredwray in #2038
Full diff: https://github.com/jaredwray/keyv/compare/v6.0.0-beta.4...v6.0.0-rc.1
- mysql: keys are now stored as
- 6.0.0-beta.418 Jun 2026pre-release
Release notes
Open source →Keyv v6.0.0-beta.4 — 2026-06-18
Finalize the v6 storage-adapter API (ttl → expires) and complete the cross-adapter code/test review.
⚠ BREAKING CHANGES
- Storage adapters now use
expires(absolute epoch-ms timestamp) instead of a relativettl. (da9c08f, #1981) Migration: if you call a storage adapter directly or implement a custom one, read the absoluteexpiresvalue from the entry envelope instead of accepting attlargument. TheKeyvcore API is unchanged — it continues to deriveexpiresfrom the value envelope, so typicalkeyv.set(key, value, ttl)usage is unaffected.
Features
-
bigmap: wire up Hookified events —
BigMapnow emitsSET,DELETE, andCLEARvia the newBigMapEventsenum. (b88d03f, #1977)import { BigMap, BigMapEvents } from '@keyv/bigmap'; const map = new BigMap<string>(); map.on(BigMapEvents.SET, (key, value) => console.log('set', key, value)); map.on(BigMapEvents.DELETE, (key) => console.log('deleted', key)); map.set('a', '1'); // → "set a 1" map.delete('a'); // → "deleted a"Also renames the exported
MapInterfaceetype toMapInterface(typo fix — safe within the v6 beta).
Bug Fixes
- etcd: support the grpc-gateway v2 error format for etcd 3.6 compatibility. (dcb64bd, #1964)
- dynamo: strip the namespace prefix in the iterator and align tests/docs. (75198aa, #1965)
- etcd: return
undefinedfor missing values and align tests/docs. (1e84580, #1966) - mysql: return
undefinedinstead ofnull, guardgetMany, and align tests/docs. (d76926b, #1969)
Documentation
- keyv: fix README API accuracy and strengthen the code/test review. (685bc77, #1979)
- keyv: add a jsDelivr badge to the README. (418ce7a, #1963)
Internal
- dynamo: code clean up and minor fixes. (9048a87, #1970)
- etcd: code clean up and documentation. (aed5638, #1972)
- postgres: code/test review for
@keyv/postgres. (9fa6847, #1971) - redis: full code and test review cleanup. (480a560, #1974)
- memcache: add an error handler. (394e254, #1973)
- memcache: uniform test suite, fix namespace docs, validate API. (95612fc, #1967)
- mongo: uniform test suite, fix README API docs. (0240400, #1968)
- mongo: documentation and fixes (includes #1980 review follow-ups). (f31850d, #1976)
- sqlite: full code and test review cleanup. (8539cfd, #1975)
- valkey: full code and test review. (e8a3ffa, #1978)
Contributors
- @jaredwray (18)
Full List of Changes
- feat: adding in jsDelivr badge for Keyv by @jaredwray in #1963
- etcd - fix: support grpc-gateway v2 error format for etcd 3.6 compatibility by @jaredwray in #1964
- dynamo - fix: strip namespace prefix in iterator and align tests/docs by @jaredwray in #1965
- etcd - fix: return undefined for missing values and align tests/docs by @jaredwray in #1966
- memcache - test: uniform test suite, fix namespace docs, validate API by @jaredwray in #1967
- mongo - test: uniform test suite, fix README API docs by @jaredwray in #1968
- mysql - fix: return undefined not null, guard getMany, and align tests/docs by @jaredwray in #1969
- dynamo - chore: code clean up and minor fixes by @jaredwray in #1970
- etcd - chore: code clean up and documentation by @jaredwray in #1972
- postgres - refactor: code/test review for @keyv/postgres by @jaredwray in #1971
- redis - chore: full code and test review cleanup by @jaredwray in #1974
- memcache - chore: adding in error handler by @jaredwray in #1973
- sqlite - refactor: full code and test review cleanup by @jaredwray in #1975
- keyv - docs: fix README API accuracy and strengthen code/test review by @jaredwray in #1979
- valkey - refactor: full code and test review by @jaredwray in #1978
- bigmap - feat: wire up hookified events and complete code/test review by @jaredwray in #1977
- mongo - chore: documentation and fixes by @jaredwray in #1976
- keyv (breaking) - storage adapters now only use expires instead of ttl by @jaredwray in #1981
Full diff: https://github.com/jaredwray/keyv/compare/v6.0.0-beta.3...v6.0.0-beta.4
- Storage adapters now use
- 6.0.0-beta.311 Jun 2026pre-release
Release notes
Open source →Keyv v6.0.0-beta.3
This release rolls up the entire v6 beta cycle — everything merged since
v6.0.0-alpha.3. v6 is a major, ground-up modernization of Keyv: a leaner core, a new raw-data API, first-class capability detection, telemetry, two new encryption packages, a dependency-free etcd adapter, and a wave of breaking dependency upgrades across the monorepo.Heads up: v6 contains a number of breaking changes vs. v5. If you are upgrading from v5, read the v5 → v6 migration guide alongside these notes.
Highlights
- 🔐 Two new encryption packages —
@keyv/encrypt-node(Node.jscrypto) and@keyv/encrypt-web(Web Crypto API), with a shared wire format so they're cross-compatible. - 🧩 Raw data API —
getRaw/getManyRaw/setRaw/setManyRawfor working directly with the stored{ value, expires }envelope. - 🔎 Capability detection —
detectKeyv,detectKeyvStorage,detectKeyvCompression,detectKeyvSerialization,detectKeyvEncryptionhelpers. - 📊 Stats / telemetry overhaul — aggregate counters plus LRU-bounded per-key frequency maps.
- 🧼 Key sanitization — opt-in protection against SQL/Mongo/path-traversal/control-character injection in keys and namespaces.
- 🪝 Hookified everywhere — unified events + pre/post hooks across the core and every adapter, now including
setMany,deleteMany,clear, anddisconnect. - 🌐 Dependency-free etcd adapter — talks to etcd v3 over its HTTP/JSON gateway via an in-house client (no
etcd3). - ⚙️ Optional serialization and no key-prefixing in core for a smaller, faster default path.
- 🏗️ Build & toolchain modernization — moved to
tsdown, TypeScript 6, and a refreshed release pipeline (OIDC publishing). - 📦 Major dependency upgrades across Redis, MongoDB, MySQL, Postgres, DynamoDB, msgpackr, hookified, hashery, and more.
⚠️ Breaking Changes
Core
StoredDataandStoredDataRawtypes removed. Use theKeyvValue<T>envelope ({ value, expires? }) and the new raw API instead. (#1929)- Keys are no longer prefixed in core. Namespacing/prefixing is now handled by the storage adapters that need it, not the core. (#1899)
getno longer checks expiry by default. Expiration is evaluated lazily/where appropriate to keep the hot path fast; expired entries still resolve toundefinedthrough the normal read paths. To re-enable core-level expiry checks, set thecheckExpired: trueoption. (#1923)- Moved to Hookified for events + hooks. Replaces the old
EventEmitterbase across core and adapters. (#1900) .set()now returns a boolean instead of the instance. (#1904)- Iterator API simplified and various method signatures cleaned up. (#1902)
setRaw/setManyRawno longer take attlargument — setexpireson the value envelope instead. (#1905)optsremoved fromKeyvStorageAdapterand theoptsproperty removed from theKeyvclass. (#1906)
Adapters & tooling (dependency bumps that change minimums)
@redis/clientupgraded to v6 (breaking). (#1954)- hookified upgraded to v3 (breaking) across the monorepo. (#1957)
- hashery upgraded to v2 in BigMap (breaking). (#1956)
- msgpackr upgraded to v2 in
@keyv/serialize-msgpackr(breaking). (#1958) - bignumber.js upgraded to v11 in the test-suite (breaking). (#1955)
- docula upgraded to v2 for the website (breaking). (#1947)
- Code-quality deps, GitHub Actions, and build tooling upgraded (some breaking minimum versions). (#1944, #1946, #1945)
- TypeScript 6 is now used to build the monorepo. (#1933)
- test-suite v6 overhaul — compliance tests rewritten for the v6 API. If you maintain a third-party adapter against
@keyv/test-suite, expect changes. (#1931)
🔐 New: Encryption Packages
Two new adapters let you encrypt values transparently. They share a wire format, so data written by one can be read by the other (same key + algorithm).
@keyv/encrypt-node— Node.jscryptoSupports AES-GCM (default), AES-CCM, ChaCha20-Poly1305, AES-CBC, and any cipher available in your Node install. (#1927)
import Keyv from 'keyv'; import KeyvEncryptNode from '@keyv/encrypt-node'; const encryption = new KeyvEncryptNode({ key: 'your-secret-key' }); const keyv = new Keyv({ encryption }); await keyv.set('foo', 'bar'); const value = await keyv.get('foo'); // 'bar' (decrypted automatically)// Pick an algorithm and output encoding const encryption = new KeyvEncryptNode({ key: 'your-secret-key', algorithm: 'chacha20-poly1305', encoding: 'hex', });@keyv/encrypt-web— Web Crypto APIWorks in browsers, Deno, Cloudflare Workers, and Node.js 18+ with no Node-specific dependencies. Supports AES-GCM (recommended) and AES-CBC. (#1928)
import Keyv from 'keyv'; import KeyvEncryptWeb from '@keyv/encrypt-web'; const encryption = new KeyvEncryptWeb({ key: 'your-secret-key' }); const keyv = new Keyv({ encryption }); await keyv.set('foo', 'bar'); const value = await keyv.get('foo'); // 'bar'Cross-compatibility wire format (same for both packages):
- AES-GCM:
base64([IV (12 bytes) || AuthTag (16 bytes) || Ciphertext]) - AES-CBC:
base64([IV (16 bytes) || Ciphertext])
🧩 Core: Raw Data API
Work directly with the stored envelope (
{ value, expires? }) — useful for replication, cache warming, and moving data between stores. (#1897, #1929)import Keyv from 'keyv'; const keyv = new Keyv(); // Write a raw envelope with an absolute expiry timestamp await keyv.setRaw('foo', { value: 'bar', expires: Date.now() + 60_000 }); // No expiry await keyv.setRaw('foo', { value: 'bar' }); // Read the raw envelope back const raw = await keyv.getRaw('foo'); // { value: 'bar', expires: 1234567890 } // Copy between instances without unwrapping/rewrapping if (raw) { await other.setRaw('foo', raw); } // Batch variants await keyv.setManyRaw([ { key: 'a', value: { value: 1 } }, { key: 'b', value: { value: 2, expires: Date.now() + 60_000 } }, ]); const many = await keyv.getManyRaw(['a', 'b']);The store-level TTL is derived automatically from
value.expires, so you no longer pass a separatettlto the raw setters.
🔎 Core: Capability Detection
New helpers report exactly which parts of an interface an object implements. Each returns a
compatibleflag —trueonly when the full interface is satisfied — plus amethodsmap describing whether each methodexistsand itsmethodType("sync"/"async"/"none"). (#1909, #1930)import Keyv, { detectKeyv, detectKeyvStorage, detectKeyvCompression, detectKeyvSerialization, detectKeyvEncryption, } from 'keyv'; detectKeyv(new Keyv()).compatible; // true (only when ALL capabilities are present) detectKeyv(new Map()).compatible; // false — but methods.get.exists is still true // Storage detection reports the detected store type plus sync/async per method const r = detectKeyvStorage(new Map()); r.compatible; // true r.store; // "mapLike" ("keyvStorage" | "mapLike" | "asyncMap" | "none") r.methods.get.methodType; // "sync" detectKeyvSerialization(JSON).compatible; // true detectKeyvCompression({ compress: d => d, decompress: d => d }).compatible; // true detectKeyvEncryption({ encrypt: d => d, decrypt: d => d }).compatible; // true
📊 Core: Stats / Telemetry
Opt-in statistics with aggregate counters and LRU-bounded per-key frequency maps. (#1912)
const keyv = new Keyv({ stats: true }); await keyv.set('foo', 'bar'); await keyv.get('foo'); // hit await keyv.get('nonexistent'); // miss await keyv.delete('foo'); keyv.stats.hits; // 1 keyv.stats.misses; // 1 keyv.stats.sets; // 1 keyv.stats.deletes; // 1 // Per-key frequency (each map capped at maxEntries, default 1000) keyv.stats.hitKeys.get('foo'); // 1 keyv.stats.missKeys.get('nonexistent'); // 1 keyv.stats.reset(); // clears counters and maps keyv.stats.enabled = false; // disable at runtime (auto-unsubscribes)
🧼 Core: Key Sanitization
Opt-in detection that strips dangerous patterns (not harmless characters) from keys and namespaces — guarding against SQL injection, MongoDB operator injection, path traversal, and control-character/CRLF attacks. Results are LRU-cached for speed.
const keyv = new Keyv({ sanitize: true }); // or fine-grained: const keyv2 = new Keyv({ sanitize: { sql: true, mongo: true, path: true, escape: true } });Applied to every key-accepting method (
get,set,delete,has, the*Manyvariants, and the raw variants), plus namespaces at construction and on thenamespacesetter.
🪝 Core: Events, Hooks & Error Handling
-
Hooks for more operations — added pre/post hooks for
setMany,deleteMany,clear, anddisconnect, in addition to the existing single-key hooks. (#1918, #1924) -
throwOnErrors— make operations throw instead of emitting'error', so you cantry/catch(great with@keyv/redisconnection handling). (#1910)import Keyv from 'keyv'; import KeyvRedis from '@keyv/redis'; const keyv = new Keyv({ store: new KeyvRedis('redis://localhost:6379'), throwOnErrors: true }); try { await keyv.set('foo', 'bar'); } catch (error) { // handle connection/timeout errors yourself } -
Key prefixing moved to adapters. Prefixing/namespacing is now handled by the storage adapters that need it rather than the core. (#1899)
-
Encode/decode now propagate errors instead of swallowing them, and several stats/telemetry edge cases were fixed (no
STAT_SETon empty set,setRawtelemetry,getManyRawdead code). (#1922, #1920, #1921, #1919)
⚙️ Core: Optional Serialization
Serialization is now optional. Disable it to store raw objects (ideal for the default in-memory
Map, where string conversion isn't needed). (#1898)const keyv = new Keyv({ serialization: false });Pipeline ordering when serialization/compression are configured:
- On set: serialize (optional) → compress (optional) → store
- On get: store → decompress (optional) → parse (optional) → value
If compression is configured without a serializer, Keyv falls back to
JSON.stringify/JSON.parsesince compression needs string input.
🌐 Storage Adapters
- etcd: dependency-free client.
@keyv/etcdnow talks to etcd v3 directly over its HTTP/JSON gateway via a small in-house client — theetcd3dependency is gone. Requires etcd v3+ and Node.js 20+ (uses globalfetch/AbortSignal.timeout). TTL via etcd leases, namespace isolation, async iterator, andsetMany/getMany/deleteMany/hasManyare all supported. (#1936, #1893) - DynamoDB: added
disconnect()anditerator(); moved to v6 requirements with namespace support; TTL now stored in milliseconds; internalisExpiredrename. AWS SDK dependencies upgraded. (#1914, #1894, #1934, #1935, #1948) - Compression adapters moved to the
KeyvCompressionAdapterstandard. (#1901) - BigMap: optimized hash function and hot-path performance. (#1915)
- Adapter dependency upgrades: MongoDB (#1951), MySQL/mysql2 (#1952), Postgres/pg (#1953), memcache (#1950).
🏗️ Build, Tooling & Release
- Moved the monorepo build to
tsdown. (#1926) - Upgraded to TypeScript 6. (#1933)
- New release management with OIDC and multi-version publishing, plus a hardened release pipeline. (#1942)
- test-suite: v6 compliance overhaul, and TTL tests can now specify milliseconds or seconds. (#1931, #1949)
- Stability: hardened service-backed test suites against timing flakes. (#1960)
- Docs/links: fixed
main-vs-masterlinks and broken logo links in package READMEs. (#1939, #1943)
📦 Notable Dependency Upgrades
Package Change PR @redis/client→ v6 (breaking) #1954 hookified→ v3 (breaking) #1957 hashery(BigMap)→ v2 (breaking) #1956 msgpackr(serialize)→ v2 (breaking) #1958 bignumber.js(test-suite)→ v11 (breaking) #1955 docula(website)→ v2 (breaking) #1947 mongodbupgraded #1951 mysql2upgraded #1952 pgupgraded #1953 AWS SDK (dynamo) upgraded #1948 memcache upgraded #1950 TypeScript → v6 #1933 GitHub Actions upgraded (breaking) #1946
Full Changelog by Release
Since
v6.0.0-beta.1mono- test: harden service-backed suites against timing flakes (#1960)serialize-msgpackr- chore: upgrade msgpackr to v2 (breaking) (#1958)mono- chore: upgrade hookified to v3 (breaking) (#1957)bigmap- chore: upgrade hashery to v2 (breaking) (#1956)test-suite- chore: upgrade bignumber.js to v11 (breaking) (#1955)redis- chore: upgrade @redis/client to v6 (breaking) (#1954)postgres- chore: upgrade pg (#1953)mysql- chore: upgrade mysql2 (#1952)mongo- chore: upgrade mongodb (#1951)memcache- chore: upgrade memcache (#1950)dynamo- chore: upgrade AWS SDK dependencies (#1948)test-suite- feat: allow storage TTL tests to specify milliseconds or seconds (#1949)website- chore: upgrade docula to v2 (breaking) (#1947)mono- chore: upgrade GitHub Actions (breaking) (#1946)mono- chore: upgrade TypeScript and build tooling (#1945)mono- chore: upgrade code quality dependencies (breaking) (#1944)mono- docs: fix broken keyv logo link in package READMEs (#1943)feat: release management with OIDC and multi versions (#1942)keyv- fix:mainbranch used instead ofmasterfor links (#1939)etcd- feat: replace etcd3 dependency with built-in HTTP/JSON client (#1936)dynamo- fix: renaming internal isExpired (#1935)dynamo- fix: storing ttl in ms now also (#1934)mono- chore: upgrading to TypeScript 6 (#1933)
v6.0.0-beta.1keyv- feat (breaking) stats / telemetry overhaul (#1912)keyv- feat: (breaking) memory adapter, bridge adapter, keyv overhaul (#1913)bigmap- feat: optimize BigMap hash function and hot path performance (#1915)dynamo- feat: add disconnect and iterator methods to KeyvDynamo (#1914)keyv- fix: handling has and hasMany better (#1916)keyv- fix: adding in decode expiring to has (#1917)keyv- feat: adding hooks for setMany and deleteMany (#1918)keyv- fix: dead code on getManyRaw (#1919)keyv- fix: on set with no result do not send telemetry STAT_SET (#1920)keyv- fix: telemetry issue on setRaw (#1921)keyv- fix: having encode / decode propagate errors (#1922)keyv- feat: (breaking) by default keyv no longer checks expires (#1923)keyv- feat: adding in hooks for clear and disconnect (#1924)keyv- fix: minor bug fixes on memory, ttl, etc (#1925)mono- feat: moving to tsdown for build (#1926)encryption-node- feat: add Node.js encryption adapter for Keyv (#1927)encrypt-web- feat: adding new web crypto module (#1928)keyv- feat: (breaking) removing StoredData and StoredDataRaw types (#1929)keyv- feat: enhancing capabilities (#1930)test-suite- feat (breaking) overhaul based on v6 changes (#1931)
v6.0.0-alpha.4keyv- feat: (breaking) moving to Hookified (#1900)compression- feat: moving to KeyvCompressionAdapter standard (#1901)keyv- feat: (breaking) api changes and iterator simplification (#1902)keyv- feat: moving storage setMany to use KeyvEntry (#1903)keyv- feat: (breaking) moving to boolean return on set (#1904)keyv- fix: (breaking) setRaw and setMany raw do not need ttl param (#1905)keyv- feat: (breaking) removing opts from KeyvStorageAdapter (#1906)keyv- feat: browser compatibility (#1907)keyv- fix: updating checks for browser tests (#1908)feat: updating capability helper functions (#1909)keyv- feat: clean up of code with fixes and helpers (#1910)
Full Changelog: https://github.com/jaredwray/keyv/compare/v6.0.0-alpha.3...v6.0.0-beta.3
- 🔐 Two new encryption packages —
- 6.0.0-alpha.322 Mar 2026pre-release
Release notes
Open source →What's Changed
- sqlite - feat: moving to namespace and modern adapter methods by @jaredwray in https://github.com/jaredwray/keyv/pull/1884
- sqlite - feat: adding in benchmarks by @jaredwray in https://github.com/jaredwray/keyv/pull/1885
- sqlite - feat: adding in driver for sqlite3 for legacy by @jaredwray in https://github.com/jaredwray/keyv/pull/1886
- sqlite - feat: major clean up of drivers and code base by @jaredwray in https://github.com/jaredwray/keyv/pull/1887
- memcache - feat: moving to using faker for unit tests by @jaredwray in https://github.com/jaredwray/keyv/pull/1888
- redis - chore: updating tests with faker by @jaredwray in https://github.com/jaredwray/keyv/pull/1889
- dynamo - chore: moving to using faker for tests by @jaredwray in https://github.com/jaredwray/keyv/pull/1890
- etcd - chore: moving to faker for tests by @jaredwray in https://github.com/jaredwray/keyv/pull/1891
- bigmap - feat: moving this to core folder as it Map interface by @jaredwray in https://github.com/jaredwray/keyv/pull/1892
- etcd - feat: moving to v6 functionality by @jaredwray in https://github.com/jaredwray/keyv/pull/1893
- dynamo - feat: moving to v6 requirements many functions and namespace by @jaredwray in https://github.com/jaredwray/keyv/pull/1894
- mono - fix: working to speed up actions by @jaredwray in https://github.com/jaredwray/keyv/pull/1895
- memcache - fix: handling namespace support better by @jaredwray in https://github.com/jaredwray/keyv/pull/1896
- keyv - feat: adding raw set features by @jaredwray in https://github.com/jaredwray/keyv/pull/1897
- keyv - feat: moving to serialization optional by @jaredwray in https://github.com/jaredwray/keyv/pull/1898
- keyv - feat: (breaking) no longer supporting key prefixing in core by @jaredwray in https://github.com/jaredwray/keyv/pull/1899
Full Changelog: https://github.com/jaredwray/keyv/compare/v6.0.0-alpha.2...v6.0.0-alpha.3
- 6.0.0-alpha.24 Mar 2026pre-release
Release notes
Open source →What's Changed
- valkey - feat: moving options to properties by @jaredwray in https://github.com/jaredwray/keyv/pull/1876
- valkey - feat: adding in getMany, setMany, deleteMany, etc by @jaredwray in https://github.com/jaredwray/keyv/pull/1877
- valkey - feat: (breaking) moving to client instead of redis name by @jaredwray in https://github.com/jaredwray/keyv/pull/1878
- mono - feat: migrating to hookified v2 by @jaredwray in https://github.com/jaredwray/keyv/pull/1879
- mysql - chore: moving to faker-js for tests by @jaredwray in https://github.com/jaredwray/keyv/pull/1881
- test-suite - feat: moving to using faker-js by @jaredwray in https://github.com/jaredwray/keyv/pull/1882
Full Changelog: https://github.com/jaredwray/keyv/compare/6.0.0-alpha.1...v6.0.0-alpha.2
- 6.0.0-alpha.126 Feb 2026pre-release
Release notes
Open source →What's Changed
- redis - feat: exporting RedisSentinelOptions by @jaredwray in https://github.com/jaredwray/keyv/pull/1823
- redis - feat: exporting redis sentinel options with updated documentation by @jaredwray in https://github.com/jaredwray/keyv/pull/1824
- mono - chore: upgrading vitest to 4.0.18 by @jaredwray in https://github.com/jaredwray/keyv/pull/1827
- keyv - chore: upgrading vitest and supporting modules to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/1828
- serialize - chore: upgrading vitest to 4.0.18 and supporting packages by @jaredwray in https://github.com/jaredwray/keyv/pull/1829
- sqlite - feat: Add WAL (Write-Ahead Logging) mode support by @snomiao in https://github.com/jaredwray/keyv/pull/1826
- compress-brotli - chore: upgrading vitest to 4.0.18 by @jaredwray in https://github.com/jaredwray/keyv/pull/1830
- compress-gzip - chore: upgrading vitest to 4.0.18 by @jaredwray in https://github.com/jaredwray/keyv/pull/1831
- sqlite - feat: Add warning for WAL mode with in-memory SQLite databases by @jaredwray in https://github.com/jaredwray/keyv/pull/1832
- docs: Add v5 to v6 migration guide by @jaredwray in https://github.com/jaredwray/keyv/pull/1833
- memcache - docs: Add memjs to memcache migration to v5-to-v6 guide by @jaredwray in https://github.com/jaredwray/keyv/pull/1836
- mono - chore: moving keyv to better mono structure by @jaredwray in https://github.com/jaredwray/keyv/pull/1838
- mono - feat: adding in version sync across all packages by @jaredwray in https://github.com/jaredwray/keyv/pull/1839
- mono - fix: tsconfig moving to esnext by @jaredwray in https://github.com/jaredwray/keyv/pull/1840
- compress-brotli - feat: moving to native zlib brotli engine by @jaredwray in https://github.com/jaredwray/keyv/pull/1841
- mono - refactor: remove ttlSupport property from all storage adapters by @jaredwray in https://github.com/jaredwray/keyv/pull/1842
- keyv - refactor: remove opts property from Keyv class by @jaredwray in https://github.com/jaredwray/keyv/pull/1843
- keyv - chore: remove cyclic workspace dependencies by @jaredwray in https://github.com/jaredwray/keyv/pull/1844
- keyv - chore: adding tests for code coverage by @jaredwray in https://github.com/jaredwray/keyv/pull/1845
- memcache - feat: migrating from memjs to memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/1846
- memcache - feat: adding in createKeyv helper function by @jaredwray in https://github.com/jaredwray/keyv/pull/1847
- memcache - fix: removing serialization as not needed by @jaredwray in https://github.com/jaredwray/keyv/pull/1848
- memcache - feat: (breaking) moving to nodes based on memcache options by @jaredwray in https://github.com/jaredwray/keyv/pull/1849
- memcache - feat: moving eventemitter to hookified by @jaredwray in https://github.com/jaredwray/keyv/pull/1850
- memcache - feat: adding constructor documentation by @jaredwray in https://github.com/jaredwray/keyv/pull/1851
- keyv - docs: Move Bun Support section lower in README by @jaredwray in https://github.com/jaredwray/keyv/pull/1853
- postgres - feat: adding in table of contents by @jaredwray in https://github.com/jaredwray/keyv/pull/1856
- postgres - feat: migrating to hookified and advanced functions by @jaredwray in https://github.com/jaredwray/keyv/pull/1857
- postgres - feat: moving to properties by @jaredwray in https://github.com/jaredwray/keyv/pull/1858
- postgres - feat: adding in native namespace support by @jaredwray in https://github.com/jaredwray/keyv/pull/1860
- postgres - feat: better ttl support by @jaredwray in https://github.com/jaredwray/keyv/pull/1861
- mysql - chore: adding table of contents by @jaredwray in https://github.com/jaredwray/keyv/pull/1862
- mysql - feat: adding setMany and hasMany by @jaredwray in https://github.com/jaredwray/keyv/pull/1863
- mysql - feat: moving to native namespacing by @jaredwray in https://github.com/jaredwray/keyv/pull/1864
- mysql - feat: removing dialect as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/1865
- mysql - feat: (breaking) moving from keySize to keyLength by @jaredwray in https://github.com/jaredwray/keyv/pull/1866
- mysql - feat: moving from eventemitter to hookified by @jaredwray in https://github.com/jaredwray/keyv/pull/1867
- mysql - feat: createKeyv helper and options cleanup by @jaredwray in https://github.com/jaredwray/keyv/pull/1868
- mongo - feat: migrating to hookified from eventemitter by @jaredwray in https://github.com/jaredwray/keyv/pull/1869
- mongo - feat: adding createKeyv helper by @jaredwray in https://github.com/jaredwray/keyv/pull/1871
- mongo - feat: moving to more robust options and properties by @jaredwray in https://github.com/jaredwray/keyv/pull/1872
- mongo - fix: moving gridFS property to read only by @jaredwray in https://github.com/jaredwray/keyv/pull/1873
- mongo - feat: adding hasMany and setMany by @jaredwray in https://github.com/jaredwray/keyv/pull/1874
- mono - feat: adding in release action by @jaredwray in https://github.com/jaredwray/keyv/pull/1875
New Contributors
- @snomiao made their first contribution in https://github.com/jaredwray/keyv/pull/1826
Full Changelog: https://github.com/jaredwray/keyv/compare/2026-01-20...6.0.0-alpha.1
- 1.3.121 Jan 2026
Nothing published for this version
- 1.3.018 Nov 2025
Nothing published for this version
- 1.2.013 Nov 2025
Nothing published for this version
- 1.1.018 Oct 2025
Nothing published for this version
- 1.0.310 Oct 2025
Nothing published for this version
- 1.0.221 Sept 2025
Nothing published for this version
- 1.0.117 Sept 2025
Nothing published for this version
- 1.0.019 Jul 2025
Nothing published for this version