#async #hash-map #data #tasks #tokio #accessible #read

napmap

异步 HashMap,在请求的数据可用之前阻止请求者任务执行

2 个版本

0.1.2 2024年6月15日
0.1.1 2024年4月1日

#500 in 异步

MIT 许可证

13KB
299

NapMap

NapMap 是一个异步 HashMap,它在请求的数据可用之前阻止请求者任务执行。

本质上,它是一种任务之间的同步工具,任务可以写入映射,而其他任务可以从中读取。

示例用法

#[tokio::main]
async fn main() {
    let napmap = Arc::new(UnboundedNapMap::new());

    tokio::spawn({
        let map = napmap.clone();
        async move {
            tokio::time::sleep(Duration::from_secs(2)).await;
            map.insert("key", 7).await;
        }
    });

    let value = napmap.get("key").await.unwrap();
    println!("value: {value}");
}

依赖项

~3–4.5MB
~66K SLoC