I'm working on finishing my JS KV compatibility library polystore [0], the goal is to make a widely compatible library to connect to many stores so that you can have a wide range of stores easily accesible.
For example, you make an API client library, now you can add polystore and accept multiple cache stores without writing all the compat layer yourself. This is a problem I've had multiple times in the past.
Or you make a project with cache, having it in files for local dev (highly debuggable) and then with Redis in prod is a simple ENV var change:
let store;
if (process.env.REDIS_URL) {
store = kv(RedisClient(process.env.REDIS_URL).connect());
} else {
store = kv(`file://${process.cwd()}/cache/`);
}
I've made many other libraries and projects during the years and having a single library handle all of this would be great.