libesedb

Crates.iolibesedb
lib.rslibesedb
version0.2.5
sourcesrc
created_at2022-06-02 00:17:58.740436
updated_at2024-01-11 05:39:11.414134
descriptionA safe Rust API for libesedb
homepage
repositoryhttps://github.com/sunsetkookaburra/rust-libesedb
max_upload_size
id598587
size71,645
Oli Lenehan (sunsetkookaburra)

documentation

https://docs.rs/libesedb

README

rust-libesedb

Repository Crate Page Documentation License

Safe Rust bindings to libyal/libesedb (via 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"));
    }
}

Test Data

Future Changes

  • v0.3.0
    • Remove close() methods in favour of drop!()
    • Lazy-load Values (store some sort of record reference, similar to current LongValue and MultiValue internally)
    • Values come in either FlatValue, LongValue, MultiValue variants, with a defined ValueType

License and Acknowledgement

This project is made available under the LGPL-3.0-or-later.

The time crate (used in FILETIME/OLETIME conversions) is available under the MIT License.

The core functionality that this library binds to is the hard work of Joachim Metz (~joachimmetz).

Commit count: 39

cargo fmt