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.
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.
./pstinsight --runAnalysis · Rust, TypeScript, Tauriready, 0 errors · offlineA pure-Rust, read-only pst-parse engine decodes the on-disk PST structure with no Outlook, MAPI, or COM dependency.
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.
Bodies are DOMPurify-sanitized and rendered in an iframe with a per-frame CSP and remote images blocked until you opt in.
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.
.eml.Download the latest release from:
https://github.com/Swatto86/PSTInsight/releases
Open the app, then choose a PST file.
.pst file.| Format | Use |
|---|---|
| EML | Portable single-message export for most mail tools |
| TXT | Plain-text review or evidence capture |
| MSG | Outlook-compatible message file using MS-OXMSG compound format |
Folder export is useful when extracting a case, project, or archive subset.
Email HTML is treated as untrusted:
This avoids the common “open old email, load trackers and remote images” problem.
PSTInsight is split into:
pst-parse: pure Rust read-only PST parserParsing runs on blocking worker threads so large PST files do not stall the UI.
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
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 must inspect more message data than subject/sender search. Use sender, subject, or folder filters first when possible.
This is by design. Use the explicit load-images control only for mail you trust.
https://github.com/Swatto86/PSTInsighthttps://github.com/Swatto86/PSTInsight/releases