11 个版本

0.2.5 2024年1月11日
0.2.4 2023年9月30日
0.2.3 2023年8月17日
0.2.2 2023年5月8日
0.1.2 2022年6月2日

#230数据库接口

Download history 111/week @ 2024-03-13 124/week @ 2024-03-20 67/week @ 2024-03-27 213/week @ 2024-04-03 198/week @ 2024-04-10 187/week @ 2024-04-17 93/week @ 2024-04-24 75/week @ 2024-05-01 64/week @ 2024-05-08 68/week @ 2024-05-15 88/week @ 2024-05-22 94/week @ 2024-05-29 74/week @ 2024-06-05 145/week @ 2024-06-12 114/week @ 2024-06-19 171/week @ 2024-06-26

每月511 次下载
用于 4 个 Crates (2 直接)

LGPL-3.0 或更新版

10MB
296K SLoC

C 243K SLoC // 0.1% comments M4 18K SLoC // 0.2% comments Visual Studio Project 15K SLoC Shell 10K SLoC // 0.2% comments Rust 6K SLoC // 0.0% comments Automake 2K SLoC // 0.0% comments Visual Studio Solution 717 SLoC Python 445 SLoC // 0.1% comments C++ 357 SLoC // 0.2% comments RPM Specfile 75 SLoC

rust-libesedb

Repository Crate Page Documentation License

libyal/libesedb 的安全 Rust 绑定(通过 libesedb-sys)。

use libesedb::EseDb;

fn main() {
    let filename = std::env::args()
        .nth(1)
        .unwrap_or("Catalog1.edb".to_string());
    let db = EseDb::open(filename).unwrap();
    println!("Db load finished!");
    let string = db.table_by_name("string").unwrap();
    for rec in string.iter_records().unwrap() {
        let rec = rec.unwrap();
        let vals = rec.iter_values().unwrap().map(|v| v.unwrap_or_default().to_string()).collect::<Vec<_>>();
        println!("{}", vals.join("\t"));
    }
}

测试数据

未来更改

  • v0.3.0
    • 移除 close() 方法,改用 drop!()
    • 懒加载 Value(存储某种类型的记录引用,类似于当前内部 LongValue 和 MultiValue)
    • ValueFlatValueLongValueMultiValue 变体形式存在,具有定义的 ValueType

许可证和致谢

本项目根据 LGPL-3.0 或更新版 许可发布。

用于 FILETIME/OLETIME 转换的 time crate(在 MIT 许可 下可用)。

此库绑定的核心功能是 Joachim Metz (~joachimmetz) 的辛勤工作。

依赖关系