#typed #cache #expiration #capabilities #concurrent-safe

typedcache

具有过期功能的并发安全typedcache

3个不稳定版本

0.2.1 2023年5月9日
0.2.0 2023年4月22日
0.1.0 2023年4月7日

#14 in #expiration

MIT/Apache

30KB
668

typedcache

Crates.io License Build Status

此crate提供了具有过期功能的并发安全typedcache。

用法

将以下内容添加到您的Cargo.toml

[build-dependencies]
typedcache = "0.2"

示例

use std::time::Duration;

use typedcache::typed::TypedMap;

#[tokio::main]
async fn main() {
    let cache = typedcache::cache("test".into());
    cache
        .add(
            TestKey("key_erpired_after_1s".into()),
            Duration::from_secs(1),
            TestValue(1),
        );
    tokio::time::sleep(Duration::from_secs(2)).await;
    assert!(cache
        .get(&TestKey("key_erpired_after_1s".into()))
        .is_none());
}

#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub struct TestKey(String);

impl TypedMap for TestKey {
    type Value = TestValue;
}

pub struct TestValue(isize);

致谢

Rust类型化的map: typedmap

具有过期功能的并发安全golang缓存库: cache2go

许可

在MIT许可证和Apache许可证(版本2.0)下双许可。

有关详细信息,请参阅LICENSE-MITLICENSE-APACHE

依赖

~3–10MB
~83K SLoC