#重用 #缓存 #future #key-value #worker-thread

pantry

用于存储可能衰减的值的临时存储

3个稳定版本

1.0.2 2020年12月8日
1.0.1 2020年11月10日
1.0.0 2020年10月28日

异步中排名第1003

MIT许可

27KB
386行(不包括注释)

食品储藏室

Crates.io Documentation cargo test and fmt check

Pantry对于临时存储可能随时间“衰减”(变得不可用)的值很有用,例如

  • 为了后续重用而保持网络连接,如果对端没有关闭其端点
  • 可能被用户或其他程序从文件系统中删除的文件
  • 可能在任何时候由其他参与者释放的资源的“弱引用”

更多信息可以在crate文档中找到。

用法

创建一个Pantry值,并使用其store函数存储用于后续使用的值。与值一起提供了一个键,以便可以使用相同的键在以后检索该值。启动一个工作线程,它监控值,并自动丢弃任何“衰减”的值。值必须实现Perishable特质,其perished函数会在值衰减后异步完成。

使用Pantry上的fetch异步函数和一个键来检索以前使用该键存储的值。只有当值使用相同的键存储并且自存储以来尚未衰减时,才会返回值。

多个值可能具有相同的键,但要注意,存储在给定键下的值可能不会按存储的顺序返回。

格式化

此crate使用自定义配置的rustfmt,该配置依赖于不稳定的功能。在稳定工具链上尝试cargo fmt可能会失败。请使用cargo +nightly fmt格式化代码。

许可

根据MIT许可授权。

依赖关系

~0.9–1.5MB
~32K SLoC