eyalgr / rmmbr

Cache stuff easily, locally or in the cloud.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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);
// nCalled is 1 here

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 free to use cloud service:

const cacher = cloudCache({
  token: "service-token",
  url: "https://uriva-rmmbr.deno.dev",
  ttl: 60 * 60 * 24, // Values will expire after one day, omission of this field implies max.
});

If your data is sensitive, you can encrypt it by adding an encryptionKey parameter:

const cacher = cloudCache({
  token: "service-token",
  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.

About

Cache stuff easily, locally or in the cloud.

License:MIT License


Languages

Language:TypeScript 61.2%Language:Python 38.8%