rmmbr
gives you a decorator you can place around async functions to have them be cached, locally or in the cloud.
Usage:
npm i rmmbr
import { cloudCache, localCache } from "rmmbr";
const cacher = localCache({ id: "some-id" });
let nCalled = 0;
const f = (x: number) => {
nCalled++;
return Promise.resolve(x);
};
const fCached = cacher(f);
await fCached(3);
await fCached(3);
The local cache stores data in a text file under a .rmmbr
directory.
There is also a memCache
, if you are feeling nostalgic 😉 and just want to store stuff in memory.
If you want to persist across devices, we offer a use cloud service, it is free to use up to a quota:
const cacher = cloudCache({
token: "service-token",
cacheId: "some name for the cache",
url: "https://uriva-rmmbr.deno.dev",
ttl: 60 * 60 * 24,
});
If your data is sensitive, you can encrypt it by adding an encryptionKey
parameter:
const cacher = cloudCache({
token: "service-token",
cacheId: "some name for the cache",
url: "https://uriva-rmmbr.deno.dev",
encryptionKey: "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
});
Note that this is implemented as e2e encryption.
At the moment this service is with no guarantees, but we are working on a production tier as well. Please contact us or post an issue if you want to try it out!
We also accept issues for feature requests 👩🔧
Python
pip install rmmbr
The python api mimicks the js one, with exported decorators named mem_cache
, local_cache
and cloud_cache
.