33 releases (stable)
Uses new Rust 2024
new 2.6.1 | Apr 15, 2025 |
---|---|
2.5.0 | Mar 30, 2025 |
2.4.0 | Feb 22, 2025 |
2.2.2 | Dec 17, 2024 |
0.1.4 | Dec 30, 2022 |
#628 in Database interfaces
850 downloads per month
Used in imessage-exporter
1MB
17K
SLoC
imessage-database
This library provides interfaces to interact with iMessage Databases.
Installation
This library is available on crates.io.
Documentation
Documentation is available on docs.rs.
Example
use imessage_database::{
error::table::TableError,
tables::{
messages::Message,
table::{get_connection, Table},
},
util::dirs::default_db_path,
};
fn iter_messages() -> Result<(), TableError> {
/// Create a read-only connection to an iMessage database
let db = get_connection(&default_db_path()).unwrap();
/// Create SQL statement
let mut statement = Message::get(&db)?;
/// Execute statement
let messages = statement
.query_map([], |row| Ok(Message::from_row(row)))
.unwrap();
/// Iterate over each row
for message in messages {
let mut msg = Message::extract(message)?;
/// Deserialize message body
msg.generate_text(&db);
/// Emit debug info for each message
println!("{:#?}", msg)
}
Ok(())
}
Dependencies
~30MB
~586K SLoC