#cache #io #file-io #file-path #file

freqfs

基于 tokio::fs 的内存文件系统缓存层,采用 LFU 逐出策略

21 个版本

0.10.0 2024 年 8 月 13 日
0.9.1 2023 年 12 月 20 日
0.9.0 2023 年 11 月 6 日
0.8.1 2023 年 7 月 24 日
0.4.3 2021 年 9 月 28 日

#55缓存

Download history 21/week @ 2024-04-29 24/week @ 2024-05-06 34/week @ 2024-05-13 36/week @ 2024-05-20 48/week @ 2024-05-27 41/week @ 2024-06-03 38/week @ 2024-06-10 32/week @ 2024-06-17 48/week @ 2024-06-24 21/week @ 2024-07-08 64/week @ 2024-07-15 45/week @ 2024-07-22 38/week @ 2024-07-29 43/week @ 2024-08-05 209/week @ 2024-08-12

345 每月下载
用于 13 个库 (10 个直接)

Apache-2.0 协议

62KB
1.5K SLoC

freqfs

基于 tokio::fs 的内存文件系统缓存层,采用最不常用逐出策略


lib.rs:

freqfs 是在 tokio::fs 之上的内存缓存层,采用最不常用逐出策略。

freqfs 会自动缓存最常使用的文件,并将其他文件备份到磁盘。这允许开发者纯粹在内存中创建和更新大量数据集合,而无需显式同步到磁盘,同时仍然可以在内存极低的宿主上运行。这对于网络服务、数据库和数据科学应用特别有用。

请参阅 示例目录 以获取详细的使用示例。

此库假定文件路径是有效的 Unicode,如果遇到无效的 Unicode 文件路径,可能会引发 panic。

它还假定在缓存根目录(即传递给 load 的路径)下的所有文件 I/O 都通过缓存路由(例如,不是通过 tokio::fsstd::fs)。如果此假设不成立,可能会引发 std::io::Error 或 panic。

如果您的程序可能没有权限写入文件系统条目,在修改之前请确保检查权限。后台清理线程如果尝试进行不允许的写操作,将会 panic。

依赖项

约 4-6.5MB
约 111K SLoC