Releases: ReagentX/imessage-exporter
Whispering Bells
Version 2.3.0 Whispering Bells contains the following fixes and improvements:
This release is dedicated to the firefighters and first responders who faced the Los Angeles fires with unwavering courage. Your service has not only protected our communities but also, like the plant, symbolized hope and renewal rising from the ashes.
- Query optimization
- 70% reduction in processing time when using filters
-s
,-e
, and/or-t
- Enhanced database query performance and reliability, especially against legacy schemas
- 70% reduction in processing time when using filters
- Enhanced sticker handling with improved source detection and display for #412 and #413
- Genmoji stickers now show prompts
- Memoji stickers are properly identified
- App-sourced stickers show originating app name
- User-generated stickers display effects
- Fixes:
- Database
- Messages
- Platform
- Improve converter detection on Linux for #420
- Miscellaneous
- API changes
- New features
- Add
GetBlob
trait for standardizedBLOB
data access - Add new
StickerSource
enum and related functionality
- Add
- Refactoring
- Rename
parse_plist
toparse_ns_keyed_archiver
- Move bundle ID parsing to dedicated module
- Rework the
EditedEvent
portion of anEditedMessage
- Rename
- New features
- Improve test organization and coverage
- Bump dependencies
- Build with latest
rustc
- API changes
Live Oak
Version 2.2.2 Live Oak contains the following fixes and improvements:
- Support filtering conversations to export for #61
- Adds
--conversation-filter
CLI arg to filter conversations based on a specified string pattern -
Supports partial matches and multiple patterns
--conversation-filter "steve@apple.com"
exports conversations withsteve@apple.com
--conversation-filter "steve@apple.com,+15558675309"
exports all conversations withsteve@apple.com
or+15558675309
--conversation-filter "@apple.com"
exports all conversations where the participant info contains@apple.com
- Group conversations with selected participants are always included
- Adds
- Expand compatibility mode for #346 and #365
- More compatibility conversions supported
video/quicktime
→video/mp4
audio/x-caf
→audio/mp4
image/heic-sequence
→image/gif
- Refactor
--copy-method
CLI arg:-c clone
copies files without converting-c basic
converts HEIC files to JPEG-c full
converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
- More compatibility conversions supported
- Improvements
- Fixes
- Miscellaneous
- Rework test fixtures
- Refactor file compatibility modules
- Add diagnostics for detected encoders/converters
- Bump dependencies
- Build with latest
rustc
Live Oak
Version 2.2.1 Live Oak contains the following fixes and improvements:
- Support filtering conversations to export for #61
- Adds
--conversation-filter
CLI arg to filter conversations based on a specified string pattern -
Supports partial matches and multiple patterns
--conversation-filter "steve@apple.com"
exports conversations withsteve@apple.com
--conversation-filter "steve@apple.com,+15558675309"
exports all conversations withsteve@apple.com
or+15558675309
--conversation-filter "@apple.com"
exports all conversations where the participant info contains@apple.com
- Group conversations with selected participants are always included
- Adds
- Expand compatibility mode for #346 and #365
- More compatibility conversions supported
video/quicktime
→video/mp4
audio/x-caf
→audio/mp4
image/heic-sequence
→image/gif
- Refactor
--copy-method
CLI arg:-c clone
copies files without converting-c basic
converts HEIC files to JPEG-c full
converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
- More compatibility conversions supported
- Improvements
- Fixes
- Miscellaneous
- Rework test fixtures
- Refactor file compatibility modules
- Add diagnostics for detected encoders/converters
- Bump dependencies
- Build with latest
rustc
Live Oak
Version 2.2.0 Live Oak contains the following fixes and improvements:
- Support filtering conversations to export for #61
- Adds
--conversation-filter
CLI arg to filter conversations based on a specified string pattern -
Supports partial matches and multiple patterns
--conversation-filter "steve@apple.com"
exports conversations withsteve@apple.com
--conversation-filter "steve@apple.com,+15558675309"
exports all conversations withsteve@apple.com
or+15558675309
--conversation-filter "@apple.com"
exports all conversations where the participant info contains@apple.com
- Group conversations with selected participants are always included
- Adds
- Expand compatibility mode for #346 and #365
- More compatibility conversions supported
video/quicktime
→video/mp4
audio/x-caf
→audio/mp4
image/heic-sequence
→image/gif
- Refactor
--copy-method
CLI arg:-c clone
copies files without converting-c basic
converts HEIC files to JPEG-c full
converts HEIC files to JPEG, CAF to MP4, and MOV to MP4
- More compatibility conversions supported
- Improvements
- Fixes
- Miscellaneous
- Rework test fixtures
- Refactor file compatibility modules
- Add diagnostics for detected encoders/converters
- Bump dependencies
- Build with latest
rustc
Prickly Pear
Version 2.1.1 Prickly Pear contains the following fixes and improvements:
- Support new iOS 18 features
- Support Handwritten messages for #31
- Improvements
- Make deduplication deterministic for chats and handles
- As a side effect, this also makes exported filenames deterministic
- Increase performance of HTML entity sanitization logic
- Reduced export size with improved attachment handling
- Only copy attachments in threaded messages once
- Share attachments across TXT and HTML exports in the same directory
- Improve file creation error messages
- Attribute old style sticker reactions to senders
- Make deduplication deterministic for chats and handles
- Fixes
- Miscellaneous
- Documentation updates
Reaction
has been renamedTapback
throughout the library- Build with latest
rustc
Prickly Pear
Version 2.1.0 Prickly Pear contains the following fixes and improvements:
- Support new iOS 18 features
- Support Handwritten messages for #31
- Improvements
- Make deduplication deterministic for chats and handles
- As a side effect, this also makes exported filenames deterministic
- Increase performance of HTML entity sanitization logic
- Reduced export size with improved attachment handling
- Only copy attachments in threaded messages once
- Share attachments across TXT and HTML exports in the same directory
- Improve file creation error messages
- Attribute old style sticker reactions to senders
- Make deduplication deterministic for chats and handles
- Fixes
- Miscellaneous
- Documentation updates
Reaction
has been renamedTapback
throughout the library- Build with latest
rustc
California Poppy
Version 2.0.1 California Poppy contains the following fixes and improvements:
- Implement a custom, pure Rust
typedstream
deserializer- Support parsing message body components from deserialized
typedstream
data - Support interactive message text using deserialized
attributedBody
range attributes:- Mentions for #18
- Unit conversions
- Deep Links
- Emails/Phone numbers
- OTP/2FA
- And more!
- Refactor
EditedMessage
design to support multi-part messages- Support unsending and editing specific message parts for #277
- Use new
typedstream
deserializer for edited message body data
- Support parsing message body components from deserialized
- Fixes
- 2x faster performance:
- Use
BufWriter<File>
instead ofPathBuf
inExporter
structs - Use column names for
messages
table queries against most recent table schema
- Use
- Miscellaneous
- Update MIME type parsing logic
- Significantly improve Windows compatibility
- Do not emit HEIC converter logs if
--copy-method
is notcompatible
- Major documentation updates
- Humanize output of CLI progress bar
- Better HTML sanitization for message body content
- Add more FAQs
- Build with latest
rustc
Beach Strawberry
Version 1.9.0 Beach Strawberry contains the following fixes and improvements:
- Rework edited message parsing logic
- Improve accuracy of estimated export size for #246
- Improve backwards compatibly for #188
- Improve Windows compatibility by removing dependency on
HOME
environment variable - Add diagnostic docs for #223
- Support Imagemagick v7 for #263
- Support legacy location sharing messages for #271
- Improve SharePlay message display
- Remove last remaining
unwrap()
calls in library and binary code- The only remaining
unwrap()
calls are in tests - None exist in library or app code
- The only remaining
- Add missing viewport tag to improve mobile display:
- Add missing documentation to table struct fields
- Miscellaneous docs updates, code cleanups, and small speedups
- Build with latest
rustc
Velvet Ash
Version 1.8.0 Velvet Ash contains the following fixes and improvements:
- Upgrade Clap from 3.x to 4.x for #198
- Use new
ExportType
enum - Resolve GHSA-g98v-hv3f-hcfr
- Use new
- Use PST timezone for tests for #199
- Check for available disk space before writing export files for #201
- Prevents exporting if there is not enough disk space
- Dismissible with
--ignore-disk-warning
- Use correct date offset in Check In messages for #202
- Improve
html
escape logic for text to fix #32 and #217 - Properly render thread originators that were edited for #220
- Improve exported data quality
- Simplify Apple Pay and Apple Cash bubbles in
html
exports - Simplify Find My bubbles in
html
andtxt
exports - Support parsing
Placemark
data from shared Maps links - Properly handle Handwritten message placeholder
- Properly handle all unsent message types, not just text
- Simplify Apple Pay and Apple Cash bubbles in
- Add some new diagnostics:
- Total number of messages
- Total database size
- Attachment size referenced in table
- Attachment size on disk
Example output
iMessage Database Diagnostics Message diagnostic data: Total messages: 97541 Messages not associated with a chat: 3406 Messages belonging to more than one chat: 29 Attachment diagnostic data: Total attachments: 36636 Data referenced in table: 32.11 GB Data present on disk: 27.73 GB Missing files: 6231 (17%) No path provided: 6132 No file located: 99 Global diagnostic data: Total database size: 199.43 MB Duplicated contacts: 76 Duplicated chats: 16
- Miscellaneous docs updates, code cleanups, and small speedups
Laurel Sumac
Version 1.7.0 Laurel Sumac contains the following fixes and improvements:
- iOS 17 and macOS Sonoma Support!
- Emit clearer error if the specified database path exists but is not an iMessage database for #177
- Support custom attachment root for #178
- Make
chat
service_name
fieldOptional
for #181 - Downgrade error to warning when
no-lazy
flag is set fortxt
exports for #189 - Support parsing App Store app links for #196
- Build with latest
rustc