Go to file
2021-11-17 11:59:12 +01:00
.vscode Added vscode task for running 2021-10-02 19:44:22 +02:00
src Updated to egui 0.15 2021-11-17 11:59:12 +01:00
tests/resources Added some test mbox files 2021-11-14 21:05:11 -05:00
.gitignore Updated readme 2021-11-14 14:50:14 +01:00
Cargo.lock Updated to egui 0.15 2021-11-17 11:59:12 +01:00
Cargo.toml Updated to egui 0.15 2021-11-17 11:59:12 +01:00
README.md Added linux info to the readme 2021-11-14 10:05:22 -05:00

Postsack

Provides a high level visual overview of swaths of email

Performance

It currently parses 632383 emails in ~160 seconds, so roughly 4.000 emails per second. This excludes (for now) attachments. Update: It currently parses 632115 emails in ~56 seconds, so roughly 11.000 emails per second. This excludes (for now) attachments.

Open Issues

  • rename repository to postsack
  • add support for message filters (read etc), the UI is already there, the filters are not applied yet
  • add a limited amount of tests..
  • generate deletion rules based on stack?
  • mbox is multiple files, e.g. inbox.mbox, sent.mbox. support this
  • support mbox
  • support apple mail
  • try iced or druid as well
  • try re-opening a database...
  • save config into sqlite
  • store last opened sqlite file
  • check if we get any values for the to_sender to_domain fields etc

Linux Issues

  • broken background color
  • can't switch import format
  • mbox support for selecting a folder of mbox files (inbox etc)

Future Options

  • Add additional UI based on Druid, Iced or Native Cocoa
  • maybe add blocking versions of the calls, too (in model)
  • abstract over Fields and backend to have a generic way to display groupable information
  • apply the window changes (no status etc) on startup, not just when loading main
  • split up into multiple crates
  • action when clicking an email?
  • allow diving into splits/segments until there're no gropu bys anymore, but the last split can be opened full (to see the mails)
  • remove unneeded dependencies and features

Development

Generate a macOS bundle via Cargo Bundle:

cargo bundle --bin gui

Linux Dependencies

In order to build (and or run) on Linux, the following dependencies are needed:

Fedora

# Development
sudo dnf install @development-tools glib cairo-devel pango-devel gdk-pixbux2-devel atk-devel gtk3 gtk3-devel libsqlite3x-devel

Ubuntu (currently untested)

# Development
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev libsqlite3-dev