1 个不稳定版本
0.1.0 | 2023年4月29日 |
---|
#221 在 缓存
每月 22 次下载
18KB
357 行
ded —
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));
}
贡献
我们欢迎对这个项目做出贡献!如果你注意到任何问题或错误,请随时提交问题或拉取请求。
许可
许可协议为以下之一:
- Apache License,版本 2.0 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖
~4–11MB
~100K SLoC