12 个版本
0.2.8 | 2023 年 12 月 2 日 |
---|---|
0.2.7 | 2023 年 10 月 31 日 |
0.2.4 | 2023 年 6 月 19 日 |
0.2.3 | 2022 年 11 月 12 日 |
0.1.8 | 2021 年 9 月 23 日 |
#123 在 数据结构
每月 3,252 次下载
在 rusvm 中使用
350KB
5.5K SLoC
缓存
简介
此包的 MSRV 是 1.55.0。
- LRU
LRUCache
、SegmentedCache
、TwoQueueCache
和AdaptiveCache
。
- LFU
TinyLFU
、SampledLFU
和WTinyLFUCache
安装
- std
[dependencies] caches = "0.2"
- no_std
[dependencies] caches = {version: "0.2", default-features = false }
用法
请参阅examples
。
路线图
-
0.2
:支持 TinyLFU、SampledLFU、WTinyLFUCache -
0.3
:支持 LIRS、DLIRS、DSLRU -
0.4
:添加 ttl 功能
相关
如果您需要一个高性能的线程安全现代缓存,请参阅https://crates.io/crates/stretto
致谢
-
RawLRU
的实现高度受到 Jerome Froelich 的 LRU 实现 和 Rust 的std::collections
库的启发。 -
感谢 HashiCorp 的 golang-lru 提供了惊人的 Go 实现。
-
Ramakrishna 的论文: 提高磁盘系统性能的缓存策略
-
TinyLFU 和 SampledLFU 的实现受到 Dgraph 的 ristretto 和 dgryski 的 go-tinylfu 的启发。
-
吉尔·艾因齐格的论文:TinyLFU:一种高效缓存准入策略
许可证
根据您的选择,可在以下两种许可证下使用:Apache License,版本 2.0 或 MIT 许可证。除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在此项目中的任何贡献,都将按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~0.9–1.7MB
~35K SLoC