13 releases
| 0.2.7 | Sep 10, 2025 |
|---|---|
| 0.2.6 | Jun 15, 2025 |
| 0.2.5 | Jan 11, 2024 |
| 0.2.4 | Sep 30, 2023 |
| 0.1.3 | Jul 11, 2022 |
#357 in Database interfaces
2,329 downloads per month
Used in 8 crates
(3 directly)
10MB
296K
SLoC
rust-libesedb
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 ofdrop!() - Lazy-load
Values (store some sort of record reference, similar to current LongValue and MultiValue internally) Values come in eitherFlatValue,LongValue,MultiValuevariants, with a definedValueType
- Remove
Publishing Process
git pullany changes frommain- Update
versionin Cargo.toml- Any changes to libesedb-sys will require updating the dependency version and a bump in the main crate version too
git add/git committhe version change (and push); e.g.release: libesedb-v0.2.7- Create a git tag / GitHub release
- e.g.
libesedb-v0.2.7
- e.g.
- Packaging dry-run
cargo publish --dry-runcargo package --list
- Publish
cargo publish
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).