Crate imessage_database
source ·Expand description
imessage-database
This library represents interfaces used to interact with the iMessage Database.
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 the iMessage database
let db = get_connection(&default_db_path());
/// 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)?;
/// Parse message body if it was sent from MacOS 13.0 or newer
msg.gen_text(&db);
/// Emit debug info for each message
println!("{:?}", msg)
}
Ok(())
}Modules
This module contains types of errors that can happen when parsing iMessage data
iMessages can represent different kinds of data. This module defines types for those data.
Representations of iMessage database tables as structs.
This module defines common utilities used across table queries.