Tools / PSTInsight

Analysis

PSTInsight

Read the signal, skip the noise.

Parses the on-disk PST format directly in Rust—no Outlook, MAPI, or COM—so you can browse the folder tree, read mail, and export messages to EML/TXT/MSG on a box that has never seen Outlook.

RustTypeScriptTauri portable exe

Under the hood

Reads the PST format directly

A pure-Rust, read-only pst-parse engine decodes the on-disk PST structure with no Outlook, MAPI, or COM dependency.

Paints from the contents table

The virtualized list reads each folder's contents table via message_summaries instead of opening every message, so folders with tens of thousands of items stay responsive.

Sandboxes untrusted email HTML

Bodies are DOMPurify-sanitized and rendered in an iframe with a per-frame CSP and remote images blocked until you opt in.

Operating system
Windows

Distribution Single portable .exe — no installer, no admin rights required.

Dependencies None. Runs offline, zero telemetry.

Licence MIT · free forever

A PST file is a sealed box unless you have Outlook installed and a profile set up to mount it. PSTInsight reads the format directly — no Outlook, no MAPI, no COM — so you can open an archive PST on a machine that’s never seen Outlook, browse the folder tree, read the mail, and pull messages or attachments out as EML, TXT or MSG. The current repository is a ground-up Rust rewrite of the original C#/WPF version, built with Tauri and a React/TypeScript front end. Read-only: it never modifies the source file.

What it does

  • Opens Unicode PST files in a three-pane desktop UI.
  • Shows folder tree with content and unread counts.
  • Uses a virtualized message list so large folders stay responsive.
  • Shows sender, recipients, dates, and message body in a reading pane.
  • Sanitizes HTML mail and renders it in a sandboxed iframe.
  • Blocks remote images by default, with an opt-in load button.
  • Saves by-value attachments to disk.
  • Saves embedded messages as .eml.
  • Exports single messages or folders to EML, TXT, or MSG.
  • Searches by subject/sender and optionally message body.
  • Never modifies the source PST.

Requirements

  • Windows, macOS, or Linux where the Tauri build is available.
  • Read access to the PST file.
  • Unicode PST file. ANSI Outlook 97-2002 PST files are not supported.
  • Node.js and Rust only if building from source.

Install

Download the latest release from:

https://github.com/Swatto86/PSTInsight/releases

Open the app, then choose a PST file.

Basic workflow

  1. Open PSTInsight.
  2. Select a .pst file.
  3. Browse folders in the tree.
  4. Select a folder to populate the message list.
  5. Click a message to preview it.
  6. Save attachments or export messages as needed.

Export formats

FormatUse
EMLPortable single-message export for most mail tools
TXTPlain-text review or evidence capture
MSGOutlook-compatible message file using MS-OXMSG compound format

Folder export is useful when extracting a case, project, or archive subset.

HTML safety

Email HTML is treated as untrusted:

  • sanitized before rendering
  • placed in a sandboxed iframe
  • protected with a per-frame CSP
  • remote images blocked by default

This avoids the common “open old email, load trackers and remote images” problem.

Architecture

PSTInsight is split into:

  • pst-parse: pure Rust read-only PST parser
  • Tauri backend: state, commands, export, MSG writer
  • React/TypeScript UI: folder tree, message list, preview, typed IPC client

Parsing runs on blocking worker threads so large PST files do not stall the UI.

Build from source

git clone https://github.com/Swatto86/PSTInsight.git
cd PSTInsight
npm install
npm run tauri dev

Build:

npm run tauri build

Run Rust quality checks:

cargo clippy --all-targets -- -D warnings
cargo test

Limitations

  • ANSI PST files are rejected with a clear error.
  • Cyclic-encrypted blocks are unsupported.
  • PSTInsight is read-only and does not edit the PST.
  • MSG export covers standard message, recipient, and attachment properties.

Troubleshooting

PST will not open

Confirm it is a Unicode PST and not an older ANSI PST. Also check that the file is not still locked by Outlook.

Body search is slow

Body search must inspect more message data than subject/sender search. Use sender, subject, or folder filters first when possible.

Remote images do not show

This is by design. Use the explicit load-images control only for mail you trust.

  • GitHub: https://github.com/Swatto86/PSTInsight
  • Releases: https://github.com/Swatto86/PSTInsight/releases