4 个版本

0.1.3 2024 年 5 月 21 日
0.1.2 2024 年 5 月 21 日
0.1.1 2024 年 5 月 17 日
0.1.0 2024 年 5 月 14 日

#295缓存

每月 49 次下载

MIT/Apache

24KB
498

一个安全、零拷贝、基于 Rust 的 Chrome 缓存解析器,支持 Chrome 缓存版本 2.0、2.1 和 3.0。

目前,它只解析缓存条目本身。您可以使用它以编程方式检查缓存索引,例如,显示存储在缓存中的已知缓存键(例如,URI),以及一些条目元数据(时间戳等)。由于我目前没有提取缓存数据的能力,它不提供提取缓存数据的实用程序。它也仅支持与缓存条目一起存储的缓存键,而不是较长的、带外缓存键。

运行示例

默认情况下,它将显示典型 Google Chrome 缓存路径中的缓存条目。提供 --path 来指向其他位置。

cargo run --example display-chrome-cache

示例用法

use std::{path::PathBuf};

use chrome_cache_parser::{CCPError, CCPResult, ChromeCache};
use chrono::{DateTime, Local};

let cache = ChromeCache::from_path(PathBuf::from(path)).unwrap();

let entries = cache.entries().unwrap();

entries.for_each(|e| {
    let e = e.get().unwrap();
    println!("[{:?}\t=>\t{:?}]: {:?}", e.hash, e.key, DateTime::<Local>::from(e.creation_time));
});

实现

实现主要只是通过 zerocopy 库进行转换,以及对缓存索引的哈希表和内部条目链表的懒惰遍历。

背景

有关 Chrome 缓存实现的概述,请参阅此处

Chromium 源代码对于理解缓存格式非常有帮助。

特别是

依赖项

~1.8–2.7MB
~44K SLoC