#cache #coalesce #coalescing

ded

Dead Easy Deduplication

1 个不稳定版本

0.1.0 2023年4月29日

#221缓存

每月 22 次下载

MIT/Apache

18KB
357

ded — crates-io-batch docs-badge rust-version-badge workflow-badge

Dead Easy Deduplication

关于

ded 是一个库,它通过 schnellru 执行请求合并和缓存。

用法

[dependencies]
ded = "0.1.0"
let cache = DedCache::new(Duration::from_secs(1), 1024);

let key = "key";
async fn value_fut() -> Result<&'static str, Infallible> {
    tokio::time::sleep(Duration::from_secs(2)).await;
    Ok("value")
}

// Accessing a new value
let value = cache.get_or_update(key, value_fut).await?;
assert_eq!(value, "value"); // value is returned, request is performed

// Accessing a cached value
{
    let start = std::time::Instant::now();

    let value = cache.get_or_update(key, value_fut).await?;
    assert_eq!(value, "value");

    // Value was returned immediately
    assert!(start.elapsed() < Duration::from_secs(1));
}

贡献

我们欢迎对这个项目做出贡献!如果你注意到任何问题或错误,请随时提交问题或拉取请求。

许可

许可协议为以下之一:

任选其一。

依赖

~4–11MB
~100K SLoC