A Python library for interacting with iMessage data, built using Rust and Apache Arrow.
- Fast & Efficient: Built with Rust and
imessage-databasecrate. - Arrow Integration: Returns data as Apache Arrow RecordBatches, ensuring zero-copy or efficient conversion to Polars and Pandas.
- Strict Typing: Uses
imessage-databasestructs for reliable parsing.
git clone ...
cd textimp2
uv syncThe library provides convenient getters for different DataFrames:
import textimp2
# Get Polars DataFrames
df_msgs = textimp2.get_messages_polars()
df_handles = textimp2.get_handles_polars()
# Get Pandas DataFrames
df_msgs_pd = textimp2.get_messages_pandas()
df_handles_pd = textimp2.get_handles_pandas()
# Get Arrow RecordBatch
batch_msgs = textimp2.get_messages_arrow()All functions accept an optional path argument:
df = textimp2.get_messages_polars("/path/to/chat.db")Accessing ~/Library/Messages/chat.db requires Full Disk Access.