Beryl.Outlook
2.1.1
dotnet add package Beryl.Outlook --version 2.1.1
NuGet\Install-Package Beryl.Outlook -Version 2.1.1
<PackageReference Include="Beryl.Outlook" Version="2.1.1" />
<PackageVersion Include="Beryl.Outlook" Version="2.1.1" />
<PackageReference Include="Beryl.Outlook" />
paket add Beryl.Outlook --version 2.1.1
#r "nuget: Beryl.Outlook, 2.1.1"
#:package Beryl.Outlook@2.1.1
#addin nuget:?package=Beryl.Outlook&version=2.1.1
#tool nuget:?package=Beryl.Outlook&version=2.1.1
Beryl.Outlook for .NET (.NET Standard 2.0 to .NET 10.0+)
Enterprise Advanced Outlook PST and OST Recovery, Deep Forensic Analysis, and Mailbox Reconstruction Engine for .NET.
Beryl.Outlook is an industry-leading, high-performance forensic and recovery SDK engineered by Data TB Software. Designed for enterprise software vendors, forensic investigators, eDiscovery platforms, and system administrators, Beryl.Outlook provides low-level binary parsing and repair capabilities for Microsoft Outlook data files (.pst and .ost).
Operates 100% independently: No Microsoft Outlook, Office, or MAPI installation is required on the server or client machine.
Why Choose Beryl.Outlook?
1. Advanced Corrupted PST and OST Repair
Standard tools like Microsoft ScanPST.exe frequently truncate corrupted records or fail when encountering severe database structure corruption. Beryl.Outlook bypasses corrupted indexes and parses raw Node Database (NDB) and Logical Table Primitive (LTP) layers directly, allowing successful recovery from critical Outlook errors including 0x80040119, 0x80040600, and oversized file corruption.
2. Zero-Header Mailbox Rebuilding
If the initial 2048-byte PST header is corrupted, zeroed out, or overwritten by malware or disk failure, conventional parsers crash. Beryl.Outlook contains an intelligent heuristic B-Tree reconstruction scanner that sweeps the binary payload, locates orphaned block descriptors (BBTs) and node descriptors (NBTs), and reconstructs the complete mailbox hierarchy from scratch.
3. Forensic Slack Space and Deleted Item Carving
When an email is permanently deleted (Shift+Delete) or purged from the "Deleted Items" folder, Outlook marks the associated database block as unallocated slack space without immediately wiping the underlying bytes. Beryl.Outlook includes a specialized forensic carving engine that scans unallocated block pools to recover permanently deleted emails, contacts, calendar events, and raw file attachments.
4. Built-in Pure Unicode PST Generation
Export recovered data directly into pristine, fully compliant Microsoft Outlook Unicode PST files compatible with Outlook 2003, 2007, 2010, 2013, 2016, 2019, 2021, 2024, and Microsoft 365. The PST generator is self-contained and does not rely on third-party drivers or Windows COM automation.
5. High-Performance Independent Architecture
Engineered from the ground up for maximum throughput and minimal memory footprint, Beryl.Outlook utilizes native memory streaming, zero-copy buffers, and SIMD vectorization. Process massive multi-gigabyte mailboxes with predictable, flat memory consumption.
Universal Target Framework Support
Beryl.Outlook is compiled with multi-target support to ensure seamless drop-in compatibility across legacy enterprise systems and modern cloud-native architectures:
| Target Framework | Supported Versions | Deployment Architecture |
|---|---|---|
| .NET Standard | netstandard2.0 | AnyCPU, x64, x86, ARM64 |
| Legacy .NET Framework | 4.6.2, 4.7, 4.7.2, 4.8, 4.8.1 | Windows Desktop, WPF, WinForms, Windows Server |
| .NET Core | 2.0, 2.1, 3.0, 3.1 | Cross-platform Console, Microservices |
| Modern .NET | .NET 6.0, .NET 7.0, .NET 8.0 (LTS) | High-throughput Linux and Windows services |
| Next-Gen .NET | .NET 9.0, .NET 10.0+ | Modern JIT SIMD Vectorization and Span Intrinsics |
Cross-Platform Compatibility: Fully supported on Windows, Windows Server (2016 through 2025), Linux (Ubuntu, Debian, RHEL, CentOS, Alpine), macOS (Apple Silicon M-series and Intel), and containerized deployments (Docker, Kubernetes).
Comparison Matrix
| Feature | Beryl.Outlook | Microsoft Tools | Other Solutions |
|---|---|---|---|
| Standalone (No Outlook/Office Required) | Yes | No | Partial |
| Corrupted PST / OST Repair | Deep Binary Reconstruction | Basic Index Truncation | Parsing Only |
| Zero-Header Recovery | Yes (Heuristic Scanner) | No (Fails on zero header) | No |
| Slack Space Deleted Items Carving | Yes (Shift+Delete Recovery) | No | No |
| Standalone Unicode PST Generation | Yes | No | Varies |
| Large File Splitting (5GB to 50GB+) | Yes (Automatic) | No | Limited / Manual |
| Cross-Platform (Linux, macOS, Docker) | Yes | No | Varies |
| Native C-ABI for Python, C++, Rust, Go | Yes (Included) | No | No |
Supported Input and Output Formats
Input Formats:
- Microsoft Outlook Personal Storage Table (.pst): ANSI (Outlook 97-2002) and Unicode (Outlook 2003-2024, Microsoft 365).
- Microsoft Exchange Offline Storage Table (.ost): Exchange 2003, 2007, 2010, 2013, 2016, 2019, Office 365, and IMAP cached files.
- Damaged and Raw Forensic Image Files: .pst.bak, raw byte dumps, and incomplete file copies.
Output Capabilities:
- Healthy Microsoft Outlook Unicode PST files.
- Extracted raw message items with complete MIME transport headers and custom MAPI properties.
- Original attachments preserved with pristine binary fidelity, CRC verification, and correct content types.
Production Code Examples
1. Basic Corrupted Mailbox Scan and PST Repair
using System;
using System.Threading.Tasks;
using Beryl.Outlook;
using Beryl.Outlook.Models;
using Beryl.Outlook.Services;
using Beryl.Outlook.Licensing;
class Program
{
static async Task Main(string[] args)
{
// 1. Initialize Engine
var engine = new BerylOutlookEngine();
// 2. Set up progress monitoring
var progress = new Progress<ScanProgressReport>(report =>
{
Console.WriteLine($"[{report.Percentage}%] {report.CurrentPhase}: {report.CurrentFolder}");
});
// 3. Scan damaged PST or OST file
string damagedFilePath = @"C:\Data\CorruptedMailbox.ost";
ScanResult result = await engine.ScanAsync(damagedFilePath, ScanMode.ExtensiveScan, progress);
Console.WriteLine("Scan Complete.");
Console.WriteLine($"Total Items Found: {result.TotalItemsCount}");
Console.WriteLine($"Permanently Deleted Items Recovered: {result.TotalDeletedItemsCount}");
// 4. Export healthy, clean PST
var exportOptions = new ExportOptions
{
Format = ExportFormat.PST,
OutputDirectory = @"C:\RecoveredData",
RecoverDeletedItems = true,
PstOption = PstSaveOption.SaveNormally
};
int exportedCount = await engine.ExportAsync(result, exportOptions);
Console.WriteLine($"Successfully exported {exportedCount} items to clean PST.");
}
}
2. Forensic Slack Carving for Deleted Item Recovery
using System;
using System.Threading.Tasks;
using Beryl.Outlook.Core;
using Beryl.Outlook.Models;
class ForensicCarver
{
public static async Task RecoverDeletedEmails(string pstPath)
{
var engine = new BerylOutlookEngine();
// ExtensiveScan automatically invokes the deep slack space carver
ScanResult scan = await engine.ScanAsync(pstPath, ScanMode.ExtensiveScan);
foreach (var folder in scan.Folders)
{
foreach (var message in folder.Messages)
{
if (message.IsDeleted)
{
Console.WriteLine("[CARVED DELETED ITEM]");
Console.WriteLine($"Subject: {message.Subject}");
Console.WriteLine($"Sender: {message.SenderEmailAddress}");
Console.WriteLine($"Date: {message.DeliveryTime}");
Console.WriteLine($"Body Snippet: {message.BodyPreview}");
Console.WriteLine(new string('-', 50));
}
}
}
}
}
3. Large PST Auto-Splitting (50GB+ File Management)
using System.Threading.Tasks;
using Beryl.Outlook;
using Beryl.Outlook.Models;
using Beryl.Outlook.Services;
class LargePstSplitter
{
public static async Task SplitLargeMailbox(ScanResult scanResult, string outputDir)
{
var engine = new BerylOutlookEngine();
var splitOptions = new ExportOptions
{
Format = ExportFormat.PST,
OutputDirectory = outputDir,
PstOption = PstSaveOption.SplitPst,
SplitSize = PstSplitSize.Split10GB // Automatically splits into part1.pst, part2.pst, etc.
};
await engine.ExportAsync(scanResult, splitOptions);
}
}
4. Commercial License Activation
using Beryl.Outlook.Licensing;
class LicensingExample
{
public static void ApplyLicense()
{
var license = new License();
// Pass path to your signed commercial license file
license.SetLicense(@"C:\Licenses\Beryl.Outlook.lic");
if (BerylLicense.IsLicensed)
{
Console.WriteLine($"Licensed To: {BerylLicense.CurrentLicense.LicensedTo}");
Console.WriteLine($"License Type: {BerylLicense.CurrentLicense.LicenseType}");
}
}
}
Commercial Licensing and EULA
Beryl.Outlook is commercial proprietary software engineered and licensed by Data TB Software.
- Evaluation / Trial Mode: Shipped with evaluation restrictions enabled by default (maximum 10 items extracted per folder for verification and testing).
- Commercial / Enterprise License: Unlocks unlimited mailbox extraction, unrestricted volume processing, multi-threaded batch operations, and commercial software distribution rights.
To acquire a commercial license or obtain an enterprise quote, visit: Product Information: https://www.datatbs.com/sdks/beryl-outlook Official Commercial EULA: https://www.datatbs.com/eula
Copyright and Legal
Copyright (c) 2024-2026 Data TB Software. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Data.Sqlite (>= 9.0.2)
- Microsoft.Win32.Registry (>= 5.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Text.Json (>= 8.0.5)
- XstReader.Api (>= 1.0.6)
-
net9.0
- Microsoft.Data.Sqlite (>= 9.0.2)
- Microsoft.Win32.Registry (>= 5.0.0)
- XstReader.Api (>= 1.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v2.1.1 Enterprise Multi-Target Release:
- Universal runtime support: Compatible with .NET Standard 2.0 (.NET Framework 4.6.2 - 4.8.1, .NET Core 2.0 - 3.1), .NET 6.0, .NET 7.0, .NET 8.0, .NET 9.0, and .NET 10.0+.
- Dual Architecture compilation: Modern JIT SIMD Vectorized intrinsics for .NET 9.0/10.0 and universal fallback binary for legacy platforms.
- Deep Slack block forensic carving with permanently deleted email and attachment recovery.
- Standalone PST creation without Microsoft Outlook or MAPI installation requirements.
- Enterprise-grade intellectual property protection with full string and control-flow obfuscation.