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

```rust use imessagedatabase::{ error::table::TableError, tables::{ messages::Message, table::{getconnection, Table}, }, util::dirs::defaultdbpath, };

fn itermessages() -> Result<(), TableError> { /// Create a read-only connection to the iMessage database let db = getconnection(&defaultdbpath()).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)?;

    /// 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(())

} ```