Kash
Function and method cache and memoization library for Rust, using #[kash] macro.
use kash;
/// Defines a function named `fib` that uses a cache implicitly named `FIB`.
/// By default, the cache will be the function's name in all caps.
Or if you want to limit the size and time-to-live:
use kash;
const TTL: u64 = 1000;
Features
default: Includesahashfeature.ahash: Enableahashhasher as default hashing algorithm.async: Include support for async functions.redis_store: Include Redis cache store.redis_tokio: Include async Redis support usingtokioandtokiotls support, impliesredis_storeandasync.redis_connection_manager: Enable the optionalconnection-managerfeature ofredis. Any async redis caches created will use a connection manager instead of aMultiplexedConnection.redis_ahash: Enable the optionalahashfeature ofredis.disk_store: Include disk cache store.
use sleep;
use Duration;
use kash;
/// Use an explicit cache-type with a custom creation block and custom cache-key generating block
use ;
use AsyncRedisCache;
use Error;
/// Cache the results of an async function in redis. Cache
/// keys will be prefixed with `cache_redis_prefix`.
async
use ;
use DiskCache;
use Error;
/// Cache the results of a function on disk.
/// Cache files will be stored under the system cache dir
/// unless otherwise specified with `dir` or the `create` argument.
Functions defined via macros will have their result, cached using the function's arguments as a key by default.
When a macro-defined function is called, the function's cache is first checked for an already computed (and still valid) value before evaluating the function body.
See examples directory for more examples.
License
MIT