Simple key-value storage with support for multiple backends

Overview

keyv

Simple key-value storage with support for multiple backends

Build Status Coverage Status npm npm

Keyv provides a consistent interface for key-value storage across multiple backends via storage adapters. It supports TTL based expiry, making it suitable as a cache or a persistent key-value store.

Features

There are a few existing modules similar to Keyv, however Keyv is different because it:

  • Isn't bloated
  • Has a simple Promise based API
  • Suitable as a TTL based cache or persistent key-value store
  • Easily embeddable inside another module
  • Works with any storage that implements the Map API
  • Handles all JSON types plus Buffer
  • Supports namespaces
  • Wide range of efficient, well tested storage adapters
  • Connection errors are passed through (db failures won't kill your app)
  • Supports the current active LTS version of Node.js or higher

Usage

Install Keyv.

npm install --save keyv

By default everything is stored in memory, you can optionally also install a storage adapter.

npm install --save @keyv/redis
npm install --save @keyv/mongo
npm install --save @keyv/sqlite
npm install --save @keyv/postgres
npm install --save @keyv/mysql

Create a new Keyv instance, passing your connection string if applicable. Keyv will automatically load the correct storage adapter.

const Keyv = require('keyv');

// One of the following
const keyv = new Keyv();
const keyv = new Keyv('redis://user:pass@localhost:6379');
const keyv = new Keyv('mongodb://user:pass@localhost:27017/dbname');
const keyv = new Keyv('sqlite://path/to/database.sqlite');
const keyv = new Keyv('postgresql://user:pass@localhost:5432/dbname');
const keyv = new Keyv('mysql://user:pass@localhost:3306/dbname');

// Handle DB connection errors
keyv.on('error', err => console.log('Connection Error', err));

await keyv.set('foo', 'expires in 1 second', 1000); // true
await keyv.set('foo', 'never expires'); // true
await keyv.get('foo'); // 'never expires'
await keyv.delete('foo'); // true
await keyv.clear(); // undefined

Namespaces

You can namespace your Keyv instance to avoid key collisions and allow you to clear only a certain namespace while using the same database.

const users = new Keyv('redis://user:pass@localhost:6379', { namespace: 'users' });
const cache = new Keyv('redis://user:pass@localhost:6379', { namespace: 'cache' });

await users.set('foo', 'users'); // true
await cache.set('foo', 'cache'); // true
await users.get('foo'); // 'users'
await cache.get('foo'); // 'cache'
await users.clear(); // undefined
await users.get('foo'); // undefined
await cache.get('foo'); // 'cache'

Custom Serializers

Keyv uses json-buffer for data serialization to ensure consistency across different backends.

You can optionally provide your own serialization functions to support extra data types or to serialize to something other than JSON.

const keyv = new Keyv({ serialize: JSON.stringify, deserialize: JSON.parse });

Warning: Using custom serializers means you lose any guarantee of data consistency. You should do extensive testing with your serialisation functions and chosen storage engine.

Official Storage Adapters

The official storage adapters are covered by over 150 integration tests to guarantee consistent behaviour. They are lightweight, efficient wrappers over the DB clients making use of indexes and native TTLs where available.

Database Adapter Native TTL Status
Redis @keyv/redis Yes Build Status Coverage Status
MongoDB @keyv/mongo Yes Build Status Coverage Status
SQLite @keyv/sqlite No Build Status Coverage Status
PostgreSQL @keyv/postgres No Build Status Coverage Status
MySQL @keyv/mysql No Build Status Coverage Status

Third-party Storage Adapters

You can also use third-party storage adapters or build your own. Keyv will wrap these storage adapters in TTL functionality and handle complex types internally.

const Keyv = require('keyv');
const myAdapter = require('./my-storage-adapter');

const keyv = new Keyv({ store: myAdapter });

Any store that follows the Map api will work.

new Keyv({ store: new Map() });

For example, quick-lru is a completely unrelated module that implements the Map API.

const Keyv = require('keyv');
const QuickLRU = require('quick-lru');

const lru = new QuickLRU({ maxSize: 1000 });
const keyv = new Keyv({ store: lru });

The following are third-party storage adapters compatible with Keyv:

Add Cache Support to your Module

Keyv is designed to be easily embedded into other modules to add cache support. The recommended pattern is to expose a cache option in your modules options which is passed through to Keyv. Caching will work in memory by default and users have the option to also install a Keyv storage adapter and pass in a connection string, or any other storage that implements the Map API.

You should also set a namespace for your module so you can safely call .clear() without clearing unrelated app data.

Inside your module:

class AwesomeModule {
	constructor(opts) {
		this.cache = new Keyv({
			uri: typeof opts.cache === 'string' && opts.cache,
			store: typeof opts.cache !== 'string' && opts.cache,
			namespace: 'awesome-module'
		});
	}
}

Now it can be consumed like this:

const AwesomeModule = require('awesome-module');

// Caches stuff in memory by default
const awesomeModule = new AwesomeModule();

// After npm install --save keyv-redis
const awesomeModule = new AwesomeModule({ cache: 'redis://localhost' });

// Some third-party module that implements the Map API
const awesomeModule = new AwesomeModule({ cache: some3rdPartyStore });

API

new Keyv([uri], [options])

Returns a new Keyv instance.

The Keyv instance is also an EventEmitter that will emit an 'error' event if the storage adapter connection fails.

uri

Type: String
Default: undefined

The connection string URI.

Merged into the options object as options.uri.

options

Type: Object

The options object is also passed through to the storage adapter. Check your storage adapter docs for any extra options.

options.namespace

Type: String
Default: 'keyv'

Namespace for the current instance.

options.ttl

Type: Number
Default: undefined

Default TTL. Can be overridden by specififying a TTL on .set().

options.serialize

Type: Function
Default: JSONB.stringify

A custom serialization function.

options.deserialize

Type: Function
Default: JSONB.parse

A custom deserialization function.

options.store

Type: Storage adapter instance
Default: new Map()

The storage adapter instance to be used by Keyv.

options.adapter

Type: String
Default: undefined

Specify an adapter to use. e.g 'redis' or 'mongodb'.

Instance

Keys must always be strings. Values can be of any type.

.set(key, value, [ttl])

Set a value.

By default keys are persistent. You can set an expiry TTL in milliseconds.

Returns a promise which resolves to true.

.get(key, [options])

Returns a promise which resolves to the retrieved value.

options.raw

Type: Boolean
Default: false

If set to true the raw DB object Keyv stores internally will be returned instead of just the value.

This contains the TTL timestamp.

.delete(key)

Deletes an entry.

Returns a promise which resolves to true if the key existed, false if not.

.clear()

Delete all entries in the current namespace.

Returns a promise which is resolved when the entries have been cleared.

License

MIT © Luke Childs

Comments
  • From the last update of @keyv/sqlite, suddenly its unable to work properly.

    From the last update of @keyv/sqlite, suddenly its unable to work properly.

    Connection Error [Error: SQLITE_ERROR: near "907626718095896626": syntax error] { errno: 1, code: 'SQLITE_ERROR' } /home/shreshthtiwari/Documents/GitHub/B0T/node_modules/@keyv/sqlite/src/index.js:44 .then(query => query(sqlString)); ^

    TypeError: query is not a function at /home/shreshthtiwari/Documents/GitHub/B0T/node_modules/@keyv/sqlite/src/index.js:44:19 at async Client. (/home/shreshthtiwari/Documents/GitHub/B0T/index.js:176:27)

    Node.js v17.3.0

    bug storage adapter 
    opened by ShreshthTiwari 43
  • Expose more raw Keyv functionality to enable better extensions.

    Expose more raw Keyv functionality to enable better extensions.

    If Keyv (and official storage adapters) were to expose more internals, this would allow for much richer functionality to be built on top of Keyv.

    Mainly:

    • [x] Optionally return the raw DB object (#39)
    • [ ] Get all keys method (#40)
    • [ ] Delete multiple keys in a single operation (#41)
    • [ ] Get multiple keys in a single operation (#78)
    • [ ] Check if key exists (#50 )

    Main thing that comes to mind is a DB migrator (needs access to expiry dates) and keyv-shrink which is currently a fork because the desired functionality couldn't be implemented on top of Keyv.

    With the three listed options implemented, keyv-shrink could be implemented efficiently on top of Keyv. All updates to Keyv and Keyv storage adapters would automatically work with keyv-shrink. Example of an implementation could be something like this:

    const Keyv = require('keyv');
    
    class KeyvShrink extends Keyv {
      shrink() {
        ...
      }
    }
    

    @MySidesTheyAreGone What are your thoughts on this? I'm tied up on client project right now but I'm interested in adding this soon.

    enhancement 
    opened by lukechilds 23
  • error TS2688: Cannot find type definition file for 'keyv'. For version 4.2.0

    error TS2688: Cannot find type definition file for 'keyv'. For version 4.2.0

    Type definition missing for 4.2.0 One of my projects has a dependency on keyv, when the typescript compiler runs it finds that 4.2.0 doesnt have the index.d.ts file. There was a publish made 16 hours ago post which builds for me have started failing. https://registry.npmjs.org/@types/keyv mentions the versions installed, and the package to the tar file is https://registry.npmjs.org/@types/keyv/-/keyv-4.2.0.tgz

    Either i can force resolution to a lower version or maybe you could push 4.2.0 with the index.d.ts file or mention a migration strategy.

    Thanks

    Steps To reproduce

    1. Clone https://github.com/software-mansion/react-native-screens
    2. npm install should fail

    The failed message should say something around the line of bob build failed. This is caused by @react-native-community-package/bob, where it runs the tsc build command as mentioned on the bottom line and it will fail.

    https://github.com/callstack/react-native-builder-bob/blob/v0.17.1/src/targets/typescript.ts#L130

    bug in progress 
    opened by nitish24p 22
  • fix typescript issues (old node + previous @types/keyv compat issues)

    fix typescript issues (old node + previous @types/keyv compat issues)

    Hello, I'm currently having problems using a dependent of this. The cause is that imports are being made from node:events, a notation that is only supported in very new versions of the @types/node package (I think 16.6 and up). To support node 12 and 14, I changed the imports to events and used the named import (the default import was actually broken for me).

    Additionally, I resolved a compatibility issue for people that used the @types/keyv package - the new definitions were missing the Store type. Aliasing it to the "new" Keyv type works fine for now, but there should be some minor refactoring for this in the future, probably.

    Fixes #268

    bug 
    opened by d-fischer 21
  • Getting error SQLITE_BUSY

    Getting error SQLITE_BUSY

    I keep getting this error.

    [Error: SQLITE_BUSY: database is locked] {
      errno: 5,
      code: 'SQLITE_BUSY'
    }
    /root/lucid/node_modules/@keyv/sql/src/index.js:39
    			.then(query => query(sqlString));
    			               ^
    
    TypeError: query is not a function
        at /root/lucid/node_modules/@keyv/sql/src/index.js:39:19
        at async DatabaseManager.get (/root/lucid/functions/connectDatabase.js:24:20)
        at async /root/lucid/functions/testing.js:16:22
    

    Is there a way to handle this or close connections cause it seems that i cant close connections.

    opened by arthurvanl 18
  • Implemented exposed iterables

    Implemented exposed iterables

    Implemented exposed iterables as suggested in #40. Also added a function _removeKeyPrefix so it's easy to remove prefix from key when returning it in an iterable. Tests are added too for all three functions(keys, values, entries).

    Ref: https://github.com/lukechilds/keyv/issues/40

    opened by dusansimic 18
  • Error when trying to run on RPI3 with all dependencies installed

    Error when trying to run on RPI3 with all dependencies installed

    I have this exact code working on my PC, but when ran on an RPI3 (All dependencies are installed and up to date) it hits an error and closes.

    Error Shown Below:

    internal/modules/cjs/loader.js:895 throw err; ^

    Error: Cannot find module '/home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/node_modules/sqlite3/lib/binding/node-v79-linux-arm/node_sqlite3.node' Require stack:

    • /home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/node_modules/sqlite3/lib/sqlite3.js
    • /home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/src/index.js
    • /home/pi/.djsbots/discordbot/node_modules/keyv/src/index.js
    • /home/pi/.djsbots/discordbot/index.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:892:15) at Function.Module._load (internal/modules/cjs/loader.js:785:27) at Module.require (internal/modules/cjs/loader.js:956:19) at require (internal/modules/cjs/helpers.js:74:18) at Object. (/home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/node_modules/sqlite3/lib/sqlite3.js:4:15) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1103:10) at Module.load (internal/modules/cjs/loader.js:914:32) at Function.Module._load (internal/modules/cjs/loader.js:822:14) at Module.require (internal/modules/cjs/loader.js:956:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/node_modules/sqlite3/lib/sqlite3.js', '/home/pi/.djsbots/discordbot/node_modules/@keyv/sqlite/src/index.js', '/home/pi/.djsbots/discordbot/node_modules/keyv/src/index.js', '/home/pi/.djsbots/discordbot/index.js' ]
    opened by AspectTheDev 16
  • Call for help

    Call for help

    (this goes for both Keyv and cacheable-request as they're both heavily related)

    Keyv got way more popular than I imagined it would. 3 million downloads a month on npm and according to GitHub insights, over 60k repos depend on Keyv 😬.

    It was literally just built as part of a cache PR for Got, but my plans for it grew and now it seems like lots of people are using it for lots of different things.

    Unfortunately this means with this amount of users, the issues/PRs come in at a rate quicker than I can deal with them.

    I’ve also had an extremely busy year with paid work (which unfortunately takes priority over OSS so I can afford to live). On top of that, I’ve had a few personal/relationship/financial/mental health issues that I’ve been dealing with this year too. As a consequence, OSS has been pushed on the back burner a bit. I haven’t invested anywhere near the amount of time I’d of liked to into OSS (especially Keyv) this year.

    I keep telling myself I wrote this for free and I don’t owe anyone anything, but people have written products they depend on to earn a living based on this code so I do feel obligated to try and keep this project well maintained, which I feel I’m failing at.

    There have also been contributors who have been very understanding of my lack of response (which I really appreciate) and some of these open PRs are 99% good to to be merged and just need a tiny bit of feedback which I just haven’t found the time to do. So I feel pretty bad about that. Sorry guys, you know who you are.

    Anyway, the purpose of this issue was a call for help to see if anyone is interested in helping me maintain Keyv. I’ve seen a few new faces recently that have made some pretty high-quality contributions.

    Just to mention some: @sindresorhus @szmarczak @roccomuso @e0ipso @UltCombo @FabricioMatteMassive @dandv @kornelski

    Thanks a lot for your help, it's been greatly appreciated. If any of you (or anyone else reading this) is interested in becoming a maintainer of Keyv, let me know and I'll send you an invite.

    Just to clarify I'm not abandoning Keyv/cacheable-request or any of my other OSS projects. I'm just struggling to keep up with the maintenance overhead alongside IRL stuff and these are the two most demanding.

    I've still got a todo list of about a gazillion things I want to improve with Keyv, and fully intend to do them. I just have bigger priorities I need to fit it around right now.

    So yeah, thanks for all the contributions you guys have made so far. If you're interested in becoming a maintainer, hit me up. If not, time is precious, I totally understand.

    Cheers, Luke ✌️

    opened by lukechilds 16
  • npm audit report

    npm audit report

    Running npm audit gave me this:

      Moderate        SQL Injection
      Package         sql
      Patched in      No patch available
      Dependency of   @keyv/mysql [dev]
      Path            @keyv/mysql > @keyv/sql > sql
      More info       https://nodesecurity.io/advisories/662
    
      Moderate        SQL Injection
      Package         sql
      Patched in      No patch available
      Dependency of   @keyv/postgres [dev]
      Path            @keyv/postgres > @keyv/sql > sql
      More info       https://nodesecurity.io/advisories/662
    
      Moderate        SQL Injection
      Package         sql
      Patched in      No patch available
      Dependency of   @keyv/sqlite [dev]
      Path            @keyv/sqlite > @keyv/sql > sql
      More info       https://nodesecurity.io/advisories/662
    
      Low             Prototype Pollution
      Package         lodash
      Patched in      >=4.17.5
      Dependency of   @keyv/mysql [dev]
      Path            @keyv/mysql > @keyv/sql > sql > lodash
      More info       https://nodesecurity.io/advisories/577
    
      Low             Prototype Pollution
      Package         lodash
      Patched in      >=4.17.5
      Dependency of   @keyv/postgres [dev]
      Path            @keyv/postgres > @keyv/sql > sql > lodash
      More info       https://nodesecurity.io/advisories/577
    
      Low             Prototype Pollution
      Package         lodash
      Patched in      >=4.17.5
      Dependency of   @keyv/sqlite [dev]
      Path            @keyv/sqlite > @keyv/sql > sql > lodash
      More info       https://nodesecurity.io/advisories/577
    

    Should we be worried about this?

    opened by szmarczak 15
  • docs: consider to add @keyv/lru to the official repository list

    docs: consider to add @keyv/lru to the official repository list

    I just created a project to add LRU as a store. I'd like to have official support for it. I noticed that the Keyv factory has stores hard-coded. Would you consider granting "official" status to https://github.com/e0ipso/keyv-lru?

    This uses the tiny-lru library, which is faster than quick-lru.

    I already integrated in the automated tests the official test suite.

    opened by e0ipso 15
  • Add valid constructor calls and arguments to types

    Add valid constructor calls and arguments to types

    ~~This covers my use-cases and most (all?) of those enumerated in the README.md, but doesn't necessarily cover everything the constructor actually may handle (e.g. compression options).~~

    This copies over types from https://github.com/DefinitelyTyped/DefinitelyTyped

    Closes #271

    opened by iamEAP 14
  • Gzip typescript conversion

    Gzip typescript conversion

    Please check if the PR fulfills these requirements

    • [x] Followed the Contributing guidelines.
    • [x] Tests for the changes have been added (for bug fixes/features) with 100% code coverage.
    • [x] Docs have been added / updated (for bug fixes / features)

    What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

    opened by alphmth 1
  • Redis Fix - namespace key can grow to GB size

    Redis Fix - namespace key can grow to GB size

    Describe the bug Since I migrated to keyv it looks like the amount of freeable memory is declining in constant rate: https://imgur.com/a/77kOTD7 (20 Jul is when I released changes for keyv migration).

    I expect it to be related to the namespace:... key, that in my case can grow to more than 15GB in actively used cache.

    To Reproduce I would expect that adding a bunch of big keys for short living values will cause the namespace:... size to constantly grow.

    Expected behavior I would expect to have some auto-purging mechanism?

    Tests (Bonus!!!) N/A

    Additional context N/A

    bug storage adapter in progress 
    opened by kdybicz 16
  • Browser support

    Browser support

    As mentioned in #64 , browser support would be useful . We're looking to run this in environments which are based on a web platform api (e.g. Cloudflare Workers).

    Is there interest in addressing the two points of change mentioned in #64 ?

    • Use https://www.npmjs.com/package/eventemitter3 instead of Node's built-in Event Emitter
    • Use https://www.npmjs.com/package/buffer over using json-buffer which relies on Node'sBuffer
    enhancement in progress 
    opened by dremekie 13
Releases(2022-12-17)
  • 2022-12-17(Dec 17, 2022)

    @keyv/sqlite is now upgraded

    The module has the latest update of sqlite3 now!

    What's Changed

    • Added keyv-arango to 3rd party storage adapters by @TimMikeladze in https://github.com/jaredwray/keyv/pull/615
    • adding in arango storage adapter reference by @jaredwray in https://github.com/jaredwray/keyv/pull/616
    • sqlite - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/617
    • sqlite - upgrading sqlite3 to 5.1.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/618
    • postgres - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/619
    • mysql - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/620
    • etcd - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/621
    • tiered - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/622

    New Contributors

    • @TimMikeladze made their first contribution in https://github.com/jaredwray/keyv/pull/615

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-12-05...2022-12-17

    Source code(tar.gz)
    Source code(zip)
  • 2022-12-05(Dec 5, 2022)

    Maintenance Release 🎉

    Majup updates to xo, ava, and core development libraries. Very minor changes overall.

    What's Changed

    • migrating to c8 for code coverage reporting by @jaredwray in https://github.com/jaredwray/keyv/pull/585
    • amazon documentdb storage adapter guide by @cprendergast19 in https://github.com/jaredwray/keyv/pull/587
    • mono - upgrading @types/node to 18.11.10 by @jaredwray in https://github.com/jaredwray/keyv/pull/588
    • keyv - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/589
    • keyv - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/590
    • memcache - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/591
    • keyv - upgrading tsd to 0.25.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/592
    • keyv - upgrading eslint to 8.29.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/593
    • keyv - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/594
    • memcache - upgrading tsd to 0.25.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/595
    • memcache - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/596
    • redis - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/597
    • redis - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/598
    • redis - upgrading tsd to 0.25.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/599
    • redis - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/600
    • test-suite - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/601
    • test-suite - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/602
    • offline - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/603
    • offline - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/604
    • offline - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/605
    • compres-brotli - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/606
    • compress-brotli - upgrading webpack to 5.75.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/607
    • compress-brotli - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/608
    • compress-brotli - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/609
    • compress-gzip - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/610
    • compress-gzip - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/611
    • compress-gzip - upgrading pako to 2.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/612
    • compress-zip - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/613

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-11-24...2022-12-05

    Source code(tar.gz)
    Source code(zip)
  • 2022-11-24(Nov 24, 2022)

    Maintenance Release 2022-11-24

    Most of the updates on this recent release are bug fixes or module updates. Here are the bug fixes:

    • Exposing the disconnect() function via Typescript - redis issue 558 disconnect definition fix by @jaredwray in https://github.com/jaredwray/keyv/pull/561
    • When using the {opts.compression} parameter with a compression component it is not working because it is async/await fixed issue 559 by @alphmth in https://github.com/jaredwray/keyv/pull/563 (Thanks @alphmth) 🥇
    • Typescript Error because of CompressionAdapter on v4.5.1 of Keyv - https://github.com/jaredwray/keyv/pull/557 (Thanks @ODudek!) 🎉

    What's Changed

    • Fix CompressionAdapter interface definition by @ODudek in https://github.com/jaredwray/keyv/pull/557
    • Added Caching Pages SEO by @cprendergast19 in https://github.com/jaredwray/keyv/pull/560
    • redis issue 558 disconnect definition fix by @jaredwray in https://github.com/jaredwray/keyv/pull/561
    • fixed issue 559 by @alphmth in https://github.com/jaredwray/keyv/pull/563
    • sqlite - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/566
    • sqlite - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/567
    • sqlite - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/568
    • postgres - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/569
    • postgres - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/570
    • postgres - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/571
    • mysql - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/572
    • mysql - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/573
    • mysql - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/574
    • etcd - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/575
    • etcd - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/576
    • etcd - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/577
    • mono - upgrading @types/node to 18.11.9 by @jaredwray in https://github.com/jaredwray/keyv/pull/578
    • etcd - upgrading webpack to 5.75.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/579
    • tiered - upgrading xo to 0.53.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/580
    • tiered - upgrading ava to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/581
    • tiered - upgrading typescript to 4.9.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/582
    • removing this module as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/583

    New Contributors

    • @ODudek made their first contribution in https://github.com/jaredwray/keyv/pull/557

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-11-06...2022-11-24

    Source code(tar.gz)
    Source code(zip)
  • 2022-11-06(Nov 6, 2022)

    Release Notes for 2022-11-06

    We have some new updates around mysql and postgres storage adapters and a ton of maintenance updates!

    Posgres - SSL Support!

    We are now supporting SSL for Postgres and thanks to @wgwz for adding this feature! 🎉

    const options = {ssl: {rejectUnauthorized: false}};
    
    const keyv = new KeyvPostgres({uri: 'postgresql://postgres:postgres@localhost:5433/keyv_test', ...options})
    

    MySQL - SSL Support!

    We now do SSL support inside the MySQL storage adapter. Thanks to @alphmth for adding this feature! 💥

    const options = {
    	ssl: {
    		rejectUnauthorized: false,
    		ca: fs.readFileSync(path.join(__dirname, '/certs/ca.pem')).toString(),
    		key: fs.readFileSync(path.join(__dirname, '/certs/client-key.pem')).toString(),
    		cert: fs.readFileSync(path.join(__dirname, '/certs/client-cert.pem')).toString(),
    	},
    };
    
    const keyv = new KeyvMysql({uri: 'mysql://root@localhost:3307/keyv_test'});
    

    What's Changed

    • Getting Started Guide 🎉 by @cprendergast19 in https://github.com/jaredwray/keyv/pull/530
    • fixed ts issue by @alphmth in https://github.com/jaredwray/keyv/pull/534
    • Created How to Implement Caching in Javascript Page by @cprendergast19 in https://github.com/jaredwray/keyv/pull/533
    • ssl configs for mysql by @alphmth in https://github.com/jaredwray/keyv/pull/532
    • Allow passing ssl config options for @keyv/postgres by @wgwz in https://github.com/jaredwray/keyv/pull/529
    • keyv - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/535
    • keyv - upgrading eslint to 8.26.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/536
    • keyv - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/537
    • memcache - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/538
    • redis - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/539
    • redis - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/540
    • redis - upgrading ioredis to 5.2.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/541
    • redis - removing @types/keyv as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/542
    • test-suite - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/543
    • test-suite - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/544
    • offline - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/545
    • offline - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/546
    • compress-brotli - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/547
    • compress-brotli - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/548
    • compress-brotli - upgrading typescript and components to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/549
    • compress-gzip - upgrading ava to 5.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/550
    • compress-gzip - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/551
    • compress-gzip - upgrading typescript and components to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/552
    • compress-gzip - removing this as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/553
    • compress-brotli - removing this module as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/554
    • testing code coverage by @jaredwray in https://github.com/jaredwray/keyv/pull/555

    New Contributors

    • @cprendergast19 made their first contribution in https://github.com/jaredwray/keyv/pull/530
    • @wgwz made their first contribution in https://github.com/jaredwray/keyv/pull/529

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-10-17...2022-11-06

    Source code(tar.gz)
    Source code(zip)
  • 2022-10-17(Oct 17, 2022)

    2022-10-17 Release

    There has been some bigger updates around the compression libraries and also updates to many of the packages. As always, this includes dependency updates which you can see below under What's Changed. Let's get started:

    Typescript update to many of the storage adapters adding in <Value=any>

    This was a fix for https://github.com/jaredwray/keyv/issues/512 and we have tested it but happy for any feedback on it.

    Compression Packages are now more robust!

    We did our initial look at how to add compression into the system and with this latest release made it much more robust. Currently supporting compress-brotli and compress-gzip each one of the packages now have type definitions and the main Keyv has an interface to define what these should look like:

    	interface CompressionAdapter {
    		async compress(value: any, options?: any);
    		async decompress(value: any, options?: any);
    		async serialize(value: any);
    		async deserialize(value: any);
    	}
    

    To use these compression libraries you can do the following:

    const KeyvBrotli = require('@keyv/compress-brotli');
    const Keyv = require('keyv');
    
    const keyv = new Keyv({store: new Map(), compression: new KeyvBrotli()});
    

    NOTE: when you do use compression the functions serialize and deserialize are overwritten.

    What's Changed

    • redis - removing reliance on this package by @jaredwray in https://github.com/jaredwray/keyv/pull/499
    • offline - removing this package as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/500
    • fixed namespace clear issue by @alphmth in https://github.com/jaredwray/keyv/pull/501
    • keyv - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/503
    • Compression Updates by @jaredwray in https://github.com/jaredwray/keyv/pull/502
    • Revert "Compression Updates" by @jaredwray in https://github.com/jaredwray/keyv/pull/505
    • keyv - upgrading eslint to 8.24.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/504
    • keyv - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/506
    • keyv - upgrading xo to 0.52.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/507
    • memcache - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/508
    • redis - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/509
    • offline - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/510
    • Compression updates v2 by @alphmth in https://github.com/jaredwray/keyv/pull/511
    • sqlite - upgrading sqlite3 to 5.1.2 by @jaredwray in https://github.com/jaredwray/keyv/pull/514
    • sqlite - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/515
    • sqlite - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/517
    • postgres - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/518
    • postgres - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/519
    • mysql - upgrading typescript to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/520
    • mysql - upgrading xo to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/521
    • Etcd - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/522
    • etcd - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/524
    • tiered - upgrading typescript to 4.8.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/525
    • tiered - upgrading xo to 0.52.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/526
    • added fix for value by @alphmth in https://github.com/jaredwray/keyv/pull/523

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-09-19...2022-10-17

    Source code(tar.gz)
    Source code(zip)
  • 2022-09-19(Sep 18, 2022)

    Maintenance Release! 🧰

    This release is more around maintenance after the Compression Changes. Here are some of the highlights for each package:

    • Redis - Upgraded the redis driver ioredis to 4.8.2
    • Test-Suite - Upgraded ava, bignumber.js, and xo to their latest
    • Sqlite - Upgraded the sqlite driver sqlite3 to 5.1.1
    • Postgres - Upgraded the postgres driver pg to 8.8.0

    In addition we made the contribution templates used for issues and pull requests more simplistic. 🎉

    Full Changelog

    • memcache - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/463
    • memcache - upgrading typescript to 4.8.2 by @jaredwray in https://github.com/jaredwray/keyv/pull/464
    • redis - upgrading ioredis to 5.2.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/465
    • redis - upgrading xo to 0.52.3 and fixing import type on index.d.ts by @jaredwray in https://github.com/jaredwray/keyv/pull/466
    • redis - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/467
    • redis - upgrading typescript to 4.8.2 by @jaredwray in https://github.com/jaredwray/keyv/pull/468
    • test-suite - upgrading bignumber.js to 9.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/469
    • test-suite - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/470
    • test-suite - upgrading xo to 0.52.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/471
    • offline - upgrading xo to 0.52.3 and readme logo by @jaredwray in https://github.com/jaredwray/keyv/pull/472
    • offline - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/473
    • offline - upgrading tsd, typescript, and ts-node to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/474
    • updating readme with direct link to keyv package by @jaredwray in https://github.com/jaredwray/keyv/pull/477
    • updating contributing documentation and templates by @jaredwray in https://github.com/jaredwray/keyv/pull/478
    • sqlite - upgrading sqlite3 to 5.1.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/480
    • sqlite - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/481
    • sqlite - upgrading typescript to 4.8.3 and tsd to 0.24.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/482
    • sqlite - upgrading xo to 0.52.3 includes index.d.ts type changes by @jaredwray in https://github.com/jaredwray/keyv/pull/483
    • postgres - upgrading xo to 0.52.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/484
    • postgres - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/485
    • postgres - upgrading typescript to and tsd to 0.24.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/486
    • postgres - upgrading pg to 8.8.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/487
    • mysql - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/488
    • mysql - upgrading typescript to 4.8.3 and tsd to 0.24.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/489
    • mysql - upgrading xo to 0.52.3 and index.d.ts with types on import by @jaredwray in https://github.com/jaredwray/keyv/pull/490
    • etcd - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/491
    • etcd - upgrading xo to 0.52.3 and index.d.ts with types by @jaredwray in https://github.com/jaredwray/keyv/pull/492
    • etcd - upgrading typescript to 4.8.3 and tsd to 0.24.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/493
    • etcd - removing pify as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/494
    • tiered - upgrading ava to 4.3.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/495
    • tiered - upgrading typescript to 4.8.3 and tsd to 0.24.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/496
    • tiered - upgrading xo to 0.52.3 and index.d.ts types by @jaredwray in https://github.com/jaredwray/keyv/pull/497

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-09-02...2022-09-19

    Source code(tar.gz)
    Source code(zip)
  • 2022-09-02(Sep 2, 2022)

    Compression Adapters for Keyv >=4.5.0 (Breaking Change ⚠️ )

    In the past Keyv had built in Brotli compression support by using the option {compress: true}. With this change you now need to provide the compression adapter:

    const KeyvBrotli = require('@keyv/compress-brotli');
    const Keyv = require('keyv');
    
    const keyv = new Keyv({compression: new KeyvBrotli()});
    

    In addition we now support Brotli and Gzip via the following adapters 🎉 :

    • brotli: Brotli compression adapter
    • Gzip: Gzip compression adapter

    What's Changed

    • added-brotli by @alphmth in https://github.com/jaredwray/keyv/pull/433
    • adding in readme for @keyv/compress-brotli by @jaredwray in https://github.com/jaredwray/keyv/pull/453
    • moving to serialize the test suites by @jaredwray in https://github.com/jaredwray/keyv/pull/454
    • updating tiered readme to have correct urls by @jaredwray in https://github.com/jaredwray/keyv/pull/456
    • Gzip compression by @alphmth in https://github.com/jaredwray/keyv/pull/457
    • compress-brotli - adding in webpack dependency by @jaredwray in https://github.com/jaredwray/keyv/pull/459
    • compress-gzip - adding in readme by @jaredwray in https://github.com/jaredwray/keyv/pull/460
    • Readme updates to support compression packages by @jaredwray in https://github.com/jaredwray/keyv/pull/461
    • support pako by @alphmth in https://github.com/jaredwray/keyv/pull/462

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-08-21...2022-09-02

    Source code(tar.gz)
    Source code(zip)
  • 2022-08-21(Aug 21, 2022)

    Keyv v4.4.1 - getMany() now will return an array of undefined or null based on the storage adapters

    A major change that has been released is to fix #431 with returning [] instead of an array of values even if it is undefined. This has been implemented across all supported storage adapters (https://github.com/jaredwray/keyv#storage-adapters).

    In addition there were minor updates to some packages which you can read in What's Changed 👇

    Redis v2.5.0 - getMany() updates

    • Supporting the new getMany() as discussed in Keyv release

    Sqlite v3.6.0 - getMany() updates and new sqlite3 version! 👍

    • Supporting the new getMany() as discussed in Keyv release
    • Sqlite3 is now on 5.0.11 with some fixes in it!
    • minor updates to some packages which you can read in What's Changed

    Etcd v1.1.0 - getMany() updates and exponential backoff on retries

    • Supporting the new getMany() as discussed in Keyv release
    • Now with cockatiel we are doing exponential backoff on retries when there is a failure 🛑
    • minor updates to some packages which you can read in What's Changed

    Postges v1.3.0, Mysql v1.4.0, Tiered v1.0.1 - getMany() updates

    Supporting the new getMany() as discussed in Keyv release 🎉 with some maintenance updates you can read in "What's Changed" 👇

    What's Changed

    • fixed undefined array issue by @alphmth in https://github.com/jaredwray/keyv/pull/432
    • keyv - upgrading ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/434
    • keyv - upgrading eslint to 8.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/435
    • keyv - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/436
    • sqlite - upgrading sqlite3 to 5.0.11 by @jaredwray in https://github.com/jaredwray/keyv/pull/437
    • sqlite - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/438
    • sqlite - upgrading tsd to 0.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/439
    • sqlite - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/440
    • postgres - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/441
    • postgres - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/442
    • mysql - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/443
    • mysql - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/444
    • etcd - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/445
    • etcd - removing webpack as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/446
    • etcd - upgrading cockatiel to 3.0.0 with exponential backoff on retry by @jaredwray in https://github.com/jaredwray/keyv/pull/447
    • tiered - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/449
    • tiered - updating xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/450

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-08-08...2022-08-21

    Source code(tar.gz)
    Source code(zip)
  • 2022-08-08(Aug 8, 2022)

    New releases including @keyv/redis to v2.4.0 and @keyv/test-suite to v1.7.5 🎉 . A ton of new updates also have been released and thanks to @dylanseago, @airtoxin, and @alphmth for all the help ❤️

    @keyv/redis v2.4.0

    Biggest update here is the move to ioredis version 5.2.2 which has some bug fixes and updates.

    @keyv/test-suite v1.7.5

    Ava and Xo have been upgraded to their latest and now shipped in test-suite. 🙌

    What's Changed

    • Fix Keyv.Options type incorrectly defines store option type by @dylanseago in https://github.com/jaredwray/keyv/pull/405
    • Delete console.log by @airtoxin in https://github.com/jaredwray/keyv/pull/418
    • Issue 403 by @alphmth in https://github.com/jaredwray/keyv/pull/417
    • memcache - upgrade ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/420
    • memcache - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/422
    • redis - upgrading ioredis to 5.2.2 by @jaredwray in https://github.com/jaredwray/keyv/pull/423
    • redis - upgrading ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/424
    • redis - upgrading ts-node to 10.9.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/425
    • redis - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/426
    • test-suite - upgrading ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/427
    • test-suite - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/428
    • offline - upgrading ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/429
    • offline - upgrading xo to 0.51.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/430

    New Contributors

    • @dylanseago made their first contribution in https://github.com/jaredwray/keyv/pull/405

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-07-17...2022-08-08

    Source code(tar.gz)
    Source code(zip)
  • 2022-07-17(Jul 17, 2022)

    This release has been more maintenance and bug fixes but I wanted to call out @trevor-scheer, @alphmth, and many others who helped test and post any issues. It really helps 👏

    Sqlite v3.5.3 Released

    This was a maintenance release but did update sqlite3 to the latest version which should help with some minor bug issues that were seen on that module.

    Redis v2.3.8 Released

    We have now fixed the Redis.Cluster issue and added in supporting documentation to go along with it. 🎉

    const KeyvRedis = require('@keyv/redis');
    const Redis = require('ioredis');
    const Keyv = require('keyv');
    
    const redis = new Redis.Cluster('redis://user:pass@localhost:6379');
    const keyvRedis = new KeyvRedis(redis);
    const keyv = new Keyv({ store: keyvRedis });
    

    https://github.com/jaredwray/keyv/blob/main/packages/redis/README.md

    Keyv v4.3.3 Released

    We have updated the getMany type definition based on this pull request from @trevor-scheer: https://github.com/jaredwray/keyv/pull/384

    What's Changed

    • Reintroduce getMany optional method by @trevor-scheer in https://github.com/jaredwray/keyv/pull/384
    • adding unmet peer dependency for eslint by @jaredwray in https://github.com/jaredwray/keyv/pull/402
    • fixed redis issue by @alphmth in https://github.com/jaredwray/keyv/pull/406
    • redis - removing console.log messages from previous bug fix by @jaredwray in https://github.com/jaredwray/keyv/pull/408
    • sqlite - upgrading tsd to 0.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/409
    • sqlite - upgrading sqlite3 to 5.0.9 by @jaredwray in https://github.com/jaredwray/keyv/pull/410
    • sqlite - upgrading ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/411
    • postgres - upgrading ava to 4.3.1 and tsd to 0.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/412
    • mysql - upgrading ava to 4.3.1 and tsd to 0.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/413
    • etcd - upgrading tsd, typescript, and ava to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/414
    • tiered - upgrading tsd to 0.22.0 and ava to 4.3.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/416

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-07-03...2022-07-17

    Source code(tar.gz)
    Source code(zip)
  • 2022-07-03(Jul 3, 2022)

    What's Changed

    • revert promise return type by @alphmth in https://github.com/jaredwray/keyv/pull/383
    • keyv - upgrading tsd to version 0.22.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/387
    • memcache - upgrading ava to version 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/388
    • memcache - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/389
    • test-suite - upgrading xo to version 0.50.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/390
    • test-suite - upgrading ava to 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/391
    • offline - upgrading xo to 0.50.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/392
    • offline - upgrading ava to 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/393
    • offline - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/394
    • redis - upgrading ioredis to 5.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/395
    • redis - upgrading xo to 0.50.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/396
    • redis - upgrading ava to 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/397
    • redis - upgrading typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/398
    • etcd - adding unmet peer webpack by @jaredwray in https://github.com/jaredwray/keyv/pull/399

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-06-20...2022-07-03

    Source code(tar.gz)
    Source code(zip)
  • 2022-06-20(Jun 20, 2022)

    What's Changed

    • keyv memcache update 337 by @jaredwray in https://github.com/jaredwray/keyv/pull/345
    • adding download sheild to readme by @jaredwray in https://github.com/jaredwray/keyv/pull/346
    • Fixing yarn workspaces error by @jaredwray in https://github.com/jaredwray/keyv/pull/348
    • Added async deserialize/serialize function types by @cesarfd in https://github.com/jaredwray/keyv/pull/349
    • Moving to support Nodejs version 14, 16, and 18 by @jaredwray in https://github.com/jaredwray/keyv/pull/350
    • updating codecov reporting to correct branch by @jaredwray in https://github.com/jaredwray/keyv/pull/351
    • Documentation: How to use our Mono Repo #324 by @becca-miller in https://github.com/jaredwray/keyv/pull/352
    • updating readme with iterator example by @jaredwray in https://github.com/jaredwray/keyv/pull/355
    • updating licensing and copyright by @jaredwray in https://github.com/jaredwray/keyv/pull/358
    • Add multi-key get typings overload by @trevor-scheer in https://github.com/jaredwray/keyv/pull/359
    • Add missing getMany optional method on Store interface by @trevor-scheer in https://github.com/jaredwray/keyv/pull/362
    • Fix memcache README code fencing by @trevor-scheer in https://github.com/jaredwray/keyv/pull/363
    • adding in xo support for memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/364
    • Add instructions for testing locally by @trevor-scheer in https://github.com/jaredwray/keyv/pull/361
    • Revert "Add missing getMany optional method on Store interface" by @jaredwray in https://github.com/jaredwray/keyv/pull/365
    • upgrading ava to version 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/366
    • upgrading tsd and typescript to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/370
    • upgrading sqlite package xo to version 0.50.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/371
    • upgrading postgres package ava to version 4.3.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/373
    • upgrading postgres package xo to version 0.50.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/374
    • upgrading postgres packages typescript to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/375
    • Make iterator’s namespace parameter optional by @dtinth in https://github.com/jaredwray/keyv/pull/368
    • upgrading etcd packages xo and ava to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/376
    • upgrading mysql packages ava and xo to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/377
    • upgrading mysql to latest typescript version by @jaredwray in https://github.com/jaredwray/keyv/pull/378
    • upgrading tiered packages ava and xo to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/379
    • upgrading tiered packages typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/380
    • upgrading keyv packages ava and xo to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/381
    • upgrading keyv packages typescript and tsd to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/382

    New Contributors

    • @cesarfd made their first contribution in https://github.com/jaredwray/keyv/pull/349
    • @becca-miller made their first contribution in https://github.com/jaredwray/keyv/pull/352
    • @trevor-scheer made their first contribution in https://github.com/jaredwray/keyv/pull/359
    • @dtinth made their first contribution in https://github.com/jaredwray/keyv/pull/368

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-05-23...2022-06-20

    Source code(tar.gz)
    Source code(zip)
  • 2022-05-23(May 23, 2022)

    What's Changed

    • Remove parameter initializer from type declarations by @theaussiepom in https://github.com/jaredwray/keyv/pull/327
    • Add disconnect to type declarations by @gafderks in https://github.com/jaredwray/keyv/pull/328
    • optional to support backward compatibilty by @alphmth in https://github.com/jaredwray/keyv/pull/330
    • fixed instance bug by @alphmth in https://github.com/jaredwray/keyv/pull/329
    • Remove references to lerna/bootstrap by @mcfedr in https://github.com/jaredwray/keyv/pull/332
    • Fix return of has in tiered by @mcfedr in https://github.com/jaredwray/keyv/pull/334
    • Wait for set promise in tiered by @mcfedr in https://github.com/jaredwray/keyv/pull/333
    • Add support for rediss protocol by @airtoxin in https://github.com/jaredwray/keyv/pull/331
    • added readme by @alphmth in https://github.com/jaredwray/keyv/pull/335
    • fix memory leak by @alphmth in https://github.com/jaredwray/keyv/pull/338
    • updating sqlite modules to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/339
    • upgrading postgres modules to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/340
    • upgrading mysql modules to latest version by @jaredwray in https://github.com/jaredwray/keyv/pull/341
    • updating etcd xo module to latest version by @jaredwray in https://github.com/jaredwray/keyv/pull/342
    • upgrading tiered modules to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/343

    New Contributors

    • @theaussiepom made their first contribution in https://github.com/jaredwray/keyv/pull/327
    • @gafderks made their first contribution in https://github.com/jaredwray/keyv/pull/328
    • @mcfedr made their first contribution in https://github.com/jaredwray/keyv/pull/332
    • @airtoxin made their first contribution in https://github.com/jaredwray/keyv/pull/331

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-05-09...2022-05-23

    Source code(tar.gz)
    Source code(zip)
  • 2022-05-09(May 10, 2022)

    What's Changed

    • doc: add iterator usage document by @kennylbj in https://github.com/jaredwray/keyv/pull/295
    • Support tiered by @alphmth in https://github.com/jaredwray/keyv/pull/291
    • moving to yarn workspaces and removing lerna by @jaredwray in https://github.com/jaredwray/keyv/pull/302
    • covered lines in test by @alphmth in https://github.com/jaredwray/keyv/pull/305
    • Issue 300 by @alphmth in https://github.com/jaredwray/keyv/pull/306
    • close connection for redis by @alphmth in https://github.com/jaredwray/keyv/pull/307
    • #311 🐛 Fix loadStore to support mongodb+srv:// URIs by @Otoris in https://github.com/jaredwray/keyv/pull/312
    • added pify as dependency by @alphmth in https://github.com/jaredwray/keyv/pull/313
    • memcache maintenance upgrade with ava and typescript by @jaredwray in https://github.com/jaredwray/keyv/pull/314
    • redis upgrades of ava, ioredis, and typescript by @jaredwray in https://github.com/jaredwray/keyv/pull/315
    • mongo updates with ava, typescript, and mongodb by @jaredwray in https://github.com/jaredwray/keyv/pull/316
    • etcd - upgrading typescript to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/317
    • keyv upgrading compress-brotli, ava, and typescript to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/318
    • offline - upgrading tsd, typescript, and ava by @jaredwray in https://github.com/jaredwray/keyv/pull/319
    • test-suite upgrading ava module to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/320

    New Contributors

    • @kennylbj made their first contribution in https://github.com/jaredwray/keyv/pull/295
    • @Otoris made their first contribution in https://github.com/jaredwray/keyv/pull/312

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-04-20...2022-05-09

    Source code(tar.gz)
    Source code(zip)
  • 2022-04-20(Apr 20, 2022)

    What's Changed

    • fix typescript issues (old node + previous @types/keyv compat issues) by @d-fischer in https://github.com/jaredwray/keyv/pull/267
    • added test for lines by @alphmth in https://github.com/jaredwray/keyv/pull/273
    • Add valid constructor calls and arguments to types by @iamEAP in https://github.com/jaredwray/keyv/pull/272
    • initial commit for supporting offline by @alphmth in https://github.com/jaredwray/keyv/pull/261
    • covered all lines by @alphmth in https://github.com/jaredwray/keyv/pull/275
    • fixed type issue in redis by @alphmth in https://github.com/jaredwray/keyv/pull/279
    • Bug 277 by @alphmth in https://github.com/jaredwray/keyv/pull/280
    • Bug 278 by @alphmth in https://github.com/jaredwray/keyv/pull/283
    • Bug 278 by @alphmth in https://github.com/jaredwray/keyv/pull/284
    • fixed memchache uncovered lines by @alphmth in https://github.com/jaredwray/keyv/pull/285
    • upgrading typescript tsd and ava to latest for postgres by @jaredwray in https://github.com/jaredwray/keyv/pull/287
    • upgrading typescript tsd and ava for mysql by @jaredwray in https://github.com/jaredwray/keyv/pull/288
    • upgrading typescript, tsd, and ava for etcd by @jaredwray in https://github.com/jaredwray/keyv/pull/289
    • change better sqlite to sqlite3 by @alphmth in https://github.com/jaredwray/keyv/pull/290
    • fixing test concurrency with lerna by @jaredwray in https://github.com/jaredwray/keyv/pull/292
    • fixing report coverage on memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/293

    New Contributors

    • @d-fischer made their first contribution in https://github.com/jaredwray/keyv/pull/267
    • @iamEAP made their first contribution in https://github.com/jaredwray/keyv/pull/272

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-04-02...2022-04-20

    Source code(tar.gz)
    Source code(zip)
  • 2022-04-02(Apr 2, 2022)

    What's Changed

    • etcd upgrading module xo to version 0.48.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/251
    • implement has() by @alphmth in https://github.com/jaredwray/keyv/pull/244
    • delete all implementation by @alphmth in https://github.com/jaredwray/keyv/pull/247
    • upgrading xo to version 0.48.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/253
    • upgrading test-suite module xo to version 0.48.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/255
    • get many by @alphmth in https://github.com/jaredwray/keyv/pull/254
    • support typescript by @alphmth in https://github.com/jaredwray/keyv/pull/257
    • support compress by @alphmth in https://github.com/jaredwray/keyv/pull/259
    • Maintenance release for memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/262
    • maintenance updates for redis by @jaredwray in https://github.com/jaredwray/keyv/pull/263
    • 2022-04 maintenance updates for mongo by @jaredwray in https://github.com/jaredwray/keyv/pull/264
    • upgrading test-suite module ava to version 4.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/265
    • 2022-04 maintenance updates for keyv by @jaredwray in https://github.com/jaredwray/keyv/pull/266

    Full Changelog: https://github.com/jaredwray/keyv/compare/2022-02-19...2022-04-02

    Source code(tar.gz)
    Source code(zip)
  • 2022-02-19(Feb 19, 2022)

    What's Changed

    • removing codecov module as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/146
    • Mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/148
    • Import keyv sql to packages by @jaredwray in https://github.com/jaredwray/keyv/pull/149
    • Import keyv mysql into mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/150
    • moving to yarn for build script by @jaredwray in https://github.com/jaredwray/keyv/pull/151
    • sql now handing mysql value issue by @jaredwray in https://github.com/jaredwray/keyv/pull/152
    • @keyv/sql upgrading xo to version 0.46.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/153
    • Import @keyv/test suite into mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/154
    • Import @keyv/sqlite to mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/155
    • removing coveralls from test-suite by @jaredwray in https://github.com/jaredwray/keyv/pull/156
    • removing storage adapter tests as not needed in mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/157
    • removing @keyv/sql from mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/158
    • Import postgres to mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/159
    • adding in keyv official tests by @jaredwray in https://github.com/jaredwray/keyv/pull/160
    • Adding in keyv official tests for mysql by @jaredwray in https://github.com/jaredwray/keyv/pull/161
    • Import keyv mongo by @jaredwray in https://github.com/jaredwray/keyv/pull/162
    • Import keyv redis by @jaredwray in https://github.com/jaredwray/keyv/pull/168
    • Redis Maintenance Release December 2021 by @jaredwray in https://github.com/jaredwray/keyv/pull/169
    • upgrading sqlite with xo version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/174
    • upgrading sqlite module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/175
    • upgrading sqlite module eslint to version 1.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/176
    • upgrading requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/179
    • updating package for mono repo reference by @jaredwray in https://github.com/jaredwray/keyv/pull/180
    • upgrading mongo module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/181
    • upgrading mongo module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/182
    • upgrading mongo module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/183
    • upgrading test-suite module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/184
    • upgrading test-suite module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/185
    • upgrading test-suite module timekeeper to version 2.2.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/186
    • upgrading test-suite module babel-cli to version 6.26.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/187
    • upgrading test-suite eslint-config-xo-lukechilds to version 1.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/188
    • Import keyv memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/190
    • Added KeyV-AzureTable Adapter by @howlowck in https://github.com/jaredwray/keyv/pull/189
    • upgrading postgres module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/191
    • upgrading postgres module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/192
    • upgrading postgres module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/193
    • upgrading mysql module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/194
    • upgrading mysql module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/195
    • upgrading mysql module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/196
    • updating readme now that on a mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/197
    • updating to use latest of keyv packages by @jaredwray in https://github.com/jaredwray/keyv/pull/199
    • removing codecov module from memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/200
    • remove sqlite dependcies by @alphmth in https://github.com/jaredwray/keyv/pull/201
    • Cleanup of circular dependencies by @jaredwray in https://github.com/jaredwray/keyv/pull/202
    • removed from mysql package by @alphmth in https://github.com/jaredwray/keyv/pull/203
    • removed from postgres package by @alphmth in https://github.com/jaredwray/keyv/pull/204
    • Revert "removed from postgres package" by @jaredwray in https://github.com/jaredwray/keyv/pull/206
    • Revert "removed from postgres package (#204)" by @alphmth in https://github.com/jaredwray/keyv/pull/207
    • Moving postgres to sql native by @jaredwray in https://github.com/jaredwray/keyv/pull/208
    • moving from build to tests in github actions by @jaredwray in https://github.com/jaredwray/keyv/pull/211
    • adding how to contribute documentation by @jaredwray in https://github.com/jaredwray/keyv/pull/212
    • move to mongodb native driver by @alphmth in https://github.com/jaredwray/keyv/pull/209
    • replace with mysql pool by @bilalsha in https://github.com/jaredwray/keyv/pull/213
    • Convert sqlite3 to better-sqlite3 by @claabs in https://github.com/jaredwray/keyv/pull/210
    • removing sqlite3 from keyv as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/216
    • initial implementation by @alphmth in https://github.com/jaredwray/keyv/pull/215
    • removed babel by @alphmth in https://github.com/jaredwray/keyv/pull/217
    • support etcd by @alphmth in https://github.com/jaredwray/keyv/pull/218
    • including etcd in code coverage by @jaredwray in https://github.com/jaredwray/keyv/pull/222
    • Etcd publish updates by @jaredwray in https://github.com/jaredwray/keyv/pull/223
    • fixed bigint and symbol by @alphmth in https://github.com/jaredwray/keyv/pull/224
    • upgrading requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/227
    • upgrading memcache module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/228
    • upgrading redis module ioredis to version 4.28.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/229
    • upgrading keyv module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/230
    • upgrading keyv eslint plugins to latest by @jaredwray in https://github.com/jaredwray/keyv/pull/231
    • upgrading keyv module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/232
    • upgrading keyv module timekeeper to version 2.2.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/233
    • moving keyv module ava back to version 3.15.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/234
    • Expose Iterables by @alphmth in https://github.com/jaredwray/keyv/pull/225
    • iterables for mysql by @alphmth in https://github.com/jaredwray/keyv/pull/237
    • wait for the detele promise by @alsotang in https://github.com/jaredwray/keyv/pull/219
    • implement iterables for postgres by @alphmth in https://github.com/jaredwray/keyv/pull/238
    • implement iterables for mongo by @alphmth in https://github.com/jaredwray/keyv/pull/239
    • implement iterables for redis by @alphmth in https://github.com/jaredwray/keyv/pull/240
    • upgrade ava by @alphmth in https://github.com/jaredwray/keyv/pull/241
    • roll back changes by @alphmth in https://github.com/jaredwray/keyv/pull/243
    • upgrading sqlite module xo to version 0.48.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/248
    • Postgres maintenance release by @jaredwray in https://github.com/jaredwray/keyv/pull/249
    • upgrading xo to version 0.48.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/250

    New Contributors

    • @howlowck made their first contribution in https://github.com/jaredwray/keyv/pull/189
    • @alphmth made their first contribution in https://github.com/jaredwray/keyv/pull/201
    • @bilalsha made their first contribution in https://github.com/jaredwray/keyv/pull/213
    • @claabs made their first contribution in https://github.com/jaredwray/keyv/pull/210
    • @alsotang made their first contribution in https://github.com/jaredwray/keyv/pull/219

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...2022-02-19

    Source code(tar.gz)
    Source code(zip)
  • test-suite-v1.7.0(Jan 28, 2022)

    What's Changed

    • removed babel by @alphmth in https://github.com/jaredwray/keyv/pull/217

    New Contributors

    • @alphmth made their first contribution in https://github.com/jaredwray/keyv/pull/201

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...test-suite-v1.7.0

    Source code(tar.gz)
    Source code(zip)
  • mongo-v2.0.0(Jan 26, 2022)

    What's Changed

    • removing codecov module as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/146
    • Mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/148
    • Import keyv sql to packages by @jaredwray in https://github.com/jaredwray/keyv/pull/149
    • Import keyv mysql into mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/150
    • moving to yarn for build script by @jaredwray in https://github.com/jaredwray/keyv/pull/151
    • sql now handing mysql value issue by @jaredwray in https://github.com/jaredwray/keyv/pull/152
    • @keyv/sql upgrading xo to version 0.46.4 by @jaredwray in https://github.com/jaredwray/keyv/pull/153
    • Import @keyv/test suite into mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/154
    • Import @keyv/sqlite to mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/155
    • removing coveralls from test-suite by @jaredwray in https://github.com/jaredwray/keyv/pull/156
    • removing storage adapter tests as not needed in mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/157
    • removing @keyv/sql from mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/158
    • Import postgres to mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/159
    • adding in keyv official tests by @jaredwray in https://github.com/jaredwray/keyv/pull/160
    • Adding in keyv official tests for mysql by @jaredwray in https://github.com/jaredwray/keyv/pull/161
    • Import keyv mongo by @jaredwray in https://github.com/jaredwray/keyv/pull/162
    • Import keyv redis by @jaredwray in https://github.com/jaredwray/keyv/pull/168
    • Redis Maintenance Release December 2021 by @jaredwray in https://github.com/jaredwray/keyv/pull/169
    • upgrading sqlite with xo version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/174
    • upgrading sqlite module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/175
    • upgrading sqlite module eslint to version 1.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/176
    • upgrading requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/179
    • updating package for mono repo reference by @jaredwray in https://github.com/jaredwray/keyv/pull/180
    • upgrading mongo module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/181
    • upgrading mongo module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/182
    • upgrading mongo module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/183
    • upgrading test-suite module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/184
    • upgrading test-suite module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/185
    • upgrading test-suite module timekeeper to version 2.2.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/186
    • upgrading test-suite module babel-cli to version 6.26.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/187
    • upgrading test-suite eslint-config-xo-lukechilds to version 1.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/188
    • Import keyv memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/190
    • Added KeyV-AzureTable Adapter by @howlowck in https://github.com/jaredwray/keyv/pull/189
    • upgrading postgres module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/191
    • upgrading postgres module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/192
    • upgrading postgres module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/193
    • upgrading mysql module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/194
    • upgrading mysql module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/195
    • upgrading mysql module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/196
    • updating readme now that on a mono repo by @jaredwray in https://github.com/jaredwray/keyv/pull/197
    • updating to use latest of keyv packages by @jaredwray in https://github.com/jaredwray/keyv/pull/199
    • removing codecov module from memcache by @jaredwray in https://github.com/jaredwray/keyv/pull/200
    • remove sqlite dependcies by @alphmth in https://github.com/jaredwray/keyv/pull/201
    • Cleanup of circular dependencies by @jaredwray in https://github.com/jaredwray/keyv/pull/202
    • removed from mysql package by @alphmth in https://github.com/jaredwray/keyv/pull/203
    • removed from postgres package by @alphmth in https://github.com/jaredwray/keyv/pull/204
    • Revert "removed from postgres package" by @jaredwray in https://github.com/jaredwray/keyv/pull/206
    • Revert "removed from postgres package (#204)" by @alphmth in https://github.com/jaredwray/keyv/pull/207
    • Moving postgres to sql native by @jaredwray in https://github.com/jaredwray/keyv/pull/208
    • moving from build to tests in github actions by @jaredwray in https://github.com/jaredwray/keyv/pull/211
    • adding how to contribute documentation by @jaredwray in https://github.com/jaredwray/keyv/pull/212
    • move to mongodb native driver by @alphmth in https://github.com/jaredwray/keyv/pull/209
    • replace with mysql pool by @bilalsha in https://github.com/jaredwray/keyv/pull/213
    • Convert sqlite3 to better-sqlite3 by @claabs in https://github.com/jaredwray/keyv/pull/210
    • removing sqlite3 from keyv as no longer needed by @jaredwray in https://github.com/jaredwray/keyv/pull/216
    • initial implementation by @alphmth in https://github.com/jaredwray/keyv/pull/215

    New Contributors

    • @howlowck made their first contribution in https://github.com/jaredwray/keyv/pull/189
    • @alphmth made their first contribution in https://github.com/jaredwray/keyv/pull/201
    • @bilalsha made their first contribution in https://github.com/jaredwray/keyv/pull/213
    • @claabs made their first contribution in https://github.com/jaredwray/keyv/pull/210

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...mongo-v2.0.0

    Source code(tar.gz)
    Source code(zip)
  • sqlite-v3.0.0(Jan 25, 2022)

    What's Changed

    • Convert sqlite3 to better-sqlite3 by @claabs in https://github.com/jaredwray/keyv/pull/210

    New Contributors

    • @claabs made their first contribution in https://github.com/jaredwray/keyv/pull/210

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...sqlite-v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • test-suite-v1.6.14(Jan 3, 2022)

    What's Changed

    • upgrading test-suite module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/184
    • upgrading test-suite module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/185
    • upgrading test-suite module timekeeper to version 2.2.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/186
    • upgrading test-suite module babel-cli to version 6.26.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/187
    • upgrading test-suite eslint-config-xo-lukechilds to version 1.0.1 by @jaredwray in https://github.com/jaredwray/keyv/pull/188

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...test-suite-v1.6.14

    Source code(tar.gz)
    Source code(zip)
  • mongo-v1.2.2(Jan 1, 2022)

    What's Changed

    • updating package for mono repo reference by @jaredwray in https://github.com/jaredwray/keyv/pull/180
    • upgrading mongo module xo to version 0.47.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/181
    • upgrading mongo module this to version 1.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/182
    • upgrading mongo module requirable to version 1.0.5 by @jaredwray in https://github.com/jaredwray/keyv/pull/183

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...mongo-v1.2.2

    Source code(tar.gz)
    Source code(zip)
  • redis-v2.2.1(Dec 5, 2021)

    What's Changed

    • Upgraded ioredis to version 4.28.2
    • Upgraded xo to version 0.47.0
    • Imported into the Keyv Mono Repo

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.4...redis-v2.2.1

    Source code(tar.gz)
    Source code(zip)
  • v4.0.4(Oct 31, 2021)

    What's Changed

    • Updating author license and 3rd party packages by @jaredwray in https://github.com/jaredwray/keyv/pull/136
    • moving to node 16 by @jaredwray in https://github.com/jaredwray/keyv/pull/138
    • Moving build and testing to GitHub actions from travis ci by @jaredwray in https://github.com/jaredwray/keyv/pull/139
    • Upgrading xo to version 0.46.3 by @jaredwray in https://github.com/jaredwray/keyv/pull/140
    • moving to codecov from coveralls by @jaredwray in https://github.com/jaredwray/keyv/pull/141
    • upgrading nyc to version 15.1.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/142
    • fix: typo in README by @e0ipso in https://github.com/jaredwray/keyv/pull/144
    • Upgrading ava to version 3.15.0 by @jaredwray in https://github.com/jaredwray/keyv/pull/143
    • updating build status on readme by @jaredwray in https://github.com/jaredwray/keyv/pull/145

    Full Changelog: https://github.com/jaredwray/keyv/compare/v4.0.3...v4.0.4

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Dec 18, 2019)

    Breaking Changes

    • Remove Node.js 6.x & Node.js 4.x support.

    Features

    • serialize/deserialize supports async functions (https://github.com/lukechilds/keyv/commit/122c4629edddd9ae641fdc31d34c2790f98c275f). This is a backward compatible change.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Oct 3, 2017)

    The data structure is now normalized across all data stores. Previously there was a difference between how native TTL supporting stores and non TTL supporting stores stored data.

    This is a breaking change because if you were previously using Keyv with the Redis or MongoDB adapter, Keyv v3 won't be able to read your data. There are zero API breaking changes though, if you clear your store, Keyv will continue to work with no code changes required.

    Moving forward this breaking change will allow us to add opt in changes to data structures for performance improvements in certain use cases without breaking backwards compatibility.

    It also makes it much easier to implement data migration tools for automatically transfering data from one Keyv store to another.

    More info on the data structure change here: https://github.com/lukechilds/keyv/pull/29

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Aug 11, 2017)

    Keyv packages (apart from Keyv itself) are now scoped to the keyv npm organisation.

    This is a breaking change because the old storage adapters will no longer be auto loaded. Using the official Redis storage adapter as an example, to update keyv@2, you would just need to uninstall keyv-redis and instead install @keyv/redis. Everything will then continue to work as expected.

    Source code(tar.gz)
    Source code(zip)
Owner
Luke Childs
Building @getumbrel
Luke Childs
Fast and advanced, document based and key-value based NoSQL database that able to work as it is installed.

About Fast and advanced, document based and key-value based NoSQL database that able to work as it is installed. Features NoSQL database Can be run as

null 6 Dec 7, 2022
Fast and advanced, document-based and key-value-based NoSQL database.

Contents About Features Installation Links About Fast and advanced, document-based and key-value-based NoSQL database. Features NoSQL database Can be

null 6 Dec 7, 2022
WebAssembly SQLite with experimental support for browser storage extensions

wa-sqlite This is a WebAssembly build of SQLite with experimental support for writing SQLite virtual filesystems and virtual table modules completely

Roy Hashimoto 260 Jan 1, 2023
A postgraphile plugin that allows you to expose only a single direction of connections exposed by foreign key constraints

A postgraphile plugin that allows you to expose only a single direction of connections exposed by foreign key constraints

Chandler Gonzales 4 Mar 13, 2022
A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for storage and cloud sql proxy.

Simple URL Shorter - Google Cloud - Kubernetes A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for

null 3 Nov 25, 2021
A simple comment system with backend support.

Waline A simple comment system with backend support. 中文 README Documatation English | 简体中文 Feature Fast Really Safe Support full markdown syntax Simpl

Waline 1.2k Jan 9, 2023
🔥 Dreamy-db - A Powerful database for storing, accessing, and managing multiple database.

Dreamy-db About Dreamy-db - A Powerful database for storing, accessing, and managing multiple databases. A powerful node.js module that allows you to

Dreamy Developer 24 Dec 22, 2022
An adapter-based ORM for Node.js with support for mysql, mongo, postgres, mssql (SQL Server), and more

Waterline is a next-generation storage and retrieval engine, and the default ORM used in the Sails framework. It provides a uniform API for accessing

Balderdash 5.4k Jan 4, 2023
A MongoDB-like database built on top of Hyperbee with support for indexing

hyperbeedeebee A MongoDB-like database built on top of Hyperbee with support for indexing WIP: There may be breaking changes in the indexing before th

null 35 Dec 12, 2022
A typescript data mapping tool. To support mutual transforming between domain model and orm entity.

ts-data-mapper A typescript mapping tool supports mutual transforming between domain model and orm entity. In most case, domain model is not fully com

zed 8 Mar 26, 2022
Run SPARQL/SQL queries directly on Virtuoso database with connection pool support.

?? virtuoso-connector Package that allows you to create a direct connection to the Virtuoso database and run queries on it. Connection can be used to

Tomáš Dvořák 6 Nov 15, 2022
A node.js locks library with support of Redis and MongoDB

locco A small and simple library to deal with race conditions in distributed systems by applying locks on resources. Currently, supports locking via R

Bohdan 5 Dec 13, 2022
A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js

bookshelf.js Bookshelf is a JavaScript ORM for Node.js, built on the Knex SQL query builder. It features both Promise-based and traditional callback i

Bookshelf.js 6.3k Jan 2, 2023
This is very simple game catch word with JavaScript and Jquery

Catch-Word-js This is very simple game catch word with JavaScript and Jquery install and run guide! download project zip! extract zip file on any dire

Jortsoft 14 Nov 26, 2022
This is a repository that contains an simple NestJS API about Movies developed at Blue EdTech.

NestJS Movies Technologies and requirements NestJS JavaScript TypeScript Prisma MySQL Project This is a repository that contains an simple NestJS API

Isabella Nunes 2 Sep 28, 2021
curl for GraphQL with autocomplete, subscriptions and GraphiQL. Also a dead-simple universal javascript GraphQL client.

graphqurl graphqurl is a curl like CLI for GraphQL. It's features include: CLI for making GraphQL queries. It also provisions queries with autocomplet

Hasura 3.2k Jan 3, 2023
Use Pinata (IPFS) as a simple datastore

?? Pinatastore A simple module to store and retrieve simple JSON data from a decentralized databse. (Pinata IPFS) Pinatastore uses a structure similar

Navindu Amarakoon 3 Jan 10, 2022
A simple yet powerful discord.js embed pagination package.

Pagination.djs A discord.js compatible pagination module. It's a simple and lightweight module to paginate discord embeds. Read docs here: pagination.

Parbez 12 Nov 9, 2022
Simple, buffered, line-by-line file reader with customizable buffer size.

simple-line-reader Simple, buffered, line-by-line file reader with customizable buffer size. Install npm install simple-line-reader yarn add simple-li

null 3 Jan 15, 2022