| Crates.io | imessage-database |
| lib.rs | imessage-database |
| version | 3.1.0 |
| created_at | 2022-12-24 21:37:00.317919+00 |
| updated_at | 2025-09-16 00:29:20.180333+00 |
| description | Parsers and tools to interact with iMessage SQLite data |
| homepage | |
| repository | https://github.com/ReagentX/imessage-exporter |
| max_upload_size | |
| id | 745069 |
| size | 2,868,539 |
This library provides interfaces to interact with iMessage Databases.
This library is available on crates.io.
Documentation is available on docs.rs.
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();
// Iterate over a stream of messages
Message::stream(&db, |message_result| {
match message_result {
Ok(mut message) => {
// Deserialize the message body
message.generate_text(&db);
// Emit debug info for each message
println!("Message: {:#?}", message)
},
Err(e) => eprintln!("Error: {:?}", e),
};
// You can substitute your own closure error type
Ok::<(), TableError>(())
})?;
Ok(())
}