digler is a free, open source frameworks & platforms project written in Go and released under MIT. It has 1,501 GitHub stars, 96 forks and 12 open issues, and was last pushed 14 hours ago. On this registry it ranks #103 of 142 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is digler?

Digler is an MIT-licensed, Go-based forensic disk analysis and file recovery tool that pairs a command-line interface with a desktop application to recover lost or deleted data from disk images and raw devices.

What it is

Digler is a forensic disk analysis and file recovery tool written in Go and released under the MIT licence. It operates on disk image formats such as .dd and .img as well as on raw physical devices, including an entire partition such as /dev/nvme0n1 on Linux or C: on Windows. The project ships two front ends over the same workflow: a command-line interface and a desktop application, so the work is available both to people who want scriptable commands and to those who prefer a visual interface. Its topics place it in the digital forensics and data recovery space, covering deleted-file recovery, file carving, filesystem analysis, disk images and photo recovery.

The problem it targets is the trade-off the README describes between heavyweight graphical recovery suites and fragmented sets of narrow tools. Digler answers it with a deliberate sequence of "scan first, recover later": a scan examines an image or device and produces a Digital Forensics XML (DFXML) report together with a detailed execution log, and recovery then extracts specific files using that report. Analysis is filesystem agnostic by design, so deleted files can be recovered from NTFS, FAT32 or ext4 even when the filesystem metadata has been lost, which is precisely the case in which recovery has to fall back on file content rather than on directory structures.

Key capabilities

  • Broad input support: analyzes disk image formats such as .dd and .img, or accesses physical disks and partitions directly, including /dev/nvme0n1 on Linux and C: on Windows.
  • Filesystem-agnostic recovery: retrieves deleted files across NTFS, FAT32 and ext4, including cases where metadata is lost.
  • Two-step scanning workflow: digler scan inspects an image or device and writes a DFXML report plus an execution log by default.
  • Immediate dumping during a scan: the --dump option recovers files to a directory while the scan runs rather than waiting for a separate recovery pass.
  • Report-driven recovery: digler recover report.xml --dir ./recover extracts specific files precisely from a previously generated DFXML report.
  • FUSE-based browsing: digler mount report.xml --mountpoint /mnt/recover exposes scan results as a mounted filesystem on Linux, so recovered files can be inspected without copying them first.
  • Plugin-based extensibility: custom file scanners can be added as plugins to support new file formats.

Who uses it and how

  • Digital forensics practitioners and researchers evaluating tooling on published test corpora, such as the DFRWS 2006 Challenge image, the Digital Corpora repository and the NIST CFReDS datasets referenced in the README.
  • Incident responders and technicians who need to examine a raw device or a captured image before deciding what to extract, keeping the original evidence untouched while working from the generated report.
  • Investigators on Linux who browse a scan report through the mounted FUSE filesystem to triage what is recoverable, copying only the files that matter.
  • Users who prefer a graphical workflow, including photo recovery from personal media, can work through the desktop application instead of the CLI.
  • Scripted or repeatable analysis, where the CLI and the DFXML output let scan and recovery steps be chained and the findings retained as a structured record.

Getting started

Build from source by cloning the repository and running make build, or download precompiled binaries for Linux, macOS and Windows from the Releases page. From there the first step is a scan, for example digler scan dfrws-2006-challenge.raw.

How it compares

The facts supplied here do not name any comparable tools, paid or otherwise, so no direct product comparison can be made. Within this registry it stands alone as a forensic disk analysis and file recovery tool.

When to use it — and when not to

Digler is explicitly in early development at v0.1.0, and the README warns that bugs may exist and asks users to report issues, so it is better suited to evaluation and research use than to cases where a failed recovery is costly. The mount feature is Linux-only and depends on a FUSE filesystem, and the two-step scan-then-recover model means an extra pass over the image whenever files were not dumped during scanning. Anyone who needs a mature, long-established recovery suite with vendor support should look elsewhere for now.

project readme (upstream, from github) — read inline

Digler - Go Deep. Get Back Your Data

⚠️ Note: Digler is in early development (v0.1.0). Some bugs may exist. Please report issues!

Build Status

Why Digler?

While many data recovery tools exist, few offer the combination of simplicity, flexibility, and modern design with deep disk analysis and effective file carving.

Digler was created to fill this gap by providing a streamlined, plugin-extensible tool for data recovery that’s both powerful and easy to use. It offers both a command-line interface and a user-friendly desktop application, making it accessible for professionals and casual users alike. Whether you prefer the speed and scriptability of the CLI or the convenience of a visual interface, Digler adapts to your workflow without the complexity of heavyweight GUIs or fragmented tools.

Built in Go, Digler leverages the language’s strengths in performance, cross-platform support, and maintainability to deliver a fast and dependable solution for today’s data recovery challenges.

Features

  • Broad Disk Image and Raw Device Support: Analyze a wide array of disk image formats (.dd, .img, etc...) or directly access physical disks.

  • File System Agnostic Analysis: Recover deleted files regardless of the underlying file system (e.g., NTFS, FAT32, ext4), even when metadata is lost.

  • Plugin-Based Extensibility: Support for custom file scanners through plugins, simplifying integration with new file formats.

  • Reporting Capabilities: Generate detailed reports, compliant with the Digital Forensics XML (DFXML) format, of recovered data and analysis findings.

  • Post-Scan Data Recovery: Utilize the generated DFXML reports to precisely recover specific files.

  • Dual Interface Options: Use Digler through a fast, intuitive command-line interface or a modern desktop application—choose the interface that best fits your workflow.


Installation

From Source:

git clone https://github.com/ostafen/digler.git
cd digler
make build

From Precompiled Binaries:

Precompiled binaries are available for Linux, macOS, and Windows on the Releases page.

CLI Usage

Digler follows a simple but powerful workflow: scan first, recover later. This approach lets you analyze disks or images thoroughly before extracting any files.

1. Scan a Disk Image or Device

foo@bar$ digler scan <image_or_device>

Example:

foo@bar$ digler scan dfrws-2006-challenge.raw

or, to scan an entire disk partition:

foo@bar$ digler scan /dev/nvme0n1 # or C: on Windows

By default, the command generates a detailed DFXML report describing the findings, together with a detailed execution log. However, you can optionally specify a dump directory to to recover files immediately during scanning.

foo@bar$ --dump <path/to/dump/dir>

2. Mount Scan Results as a Filesystem (Linux only)

foo@bar$ digler mount <image_or_device> <report_file.xml> --mountpoint /path/to/mnt

Example:

digler mount dfrws-2006-challenge.raw report.xml --mountpoint /mnt/recover

This mounts a FUSE filesystem allowing you to browse and access recovered files directly from the scan report, without copying anything yet.

3. Recover Files Based on Scan Report

foo@bar$ digler recover <image_or_device> <report_file.xml> --dir /path/to/dir

Example:

foo@bar$ digler recover dfrws-2006-challenge.raw report.xml --dir ./recover

Test Datasets

To help you get started with real-world testing and evaluation, here are some publicly available disk image datasets commonly used in digital forensics research:

You can download these images and use Digler’s scan and recover commands to experiment and validate your setup.

Supported File Types

Even in its early stages, Digler is already capable of recovering a wide range of file types, including documents, images, audio, and archives.

To see the complete list of supported formats, run:

foo@bar$ digler formats

Adding Custom Scanners via Plugins

Digler supports a plugin architecture that allows you to extend the tool with custom file scanners. This makes it easy to add support for new file formats or specialized carving logic without modifying the core code.

Plugin Interface

Your plugin must implement the following interface:

type FileScanner interface {
    Ext() string                  // Returns the file extension this scanner handles
    Description() string          // A brief description of the file type
    Signatures() [][]byte         // Byte signatures used to identify the file type
    ScanFile(r *Reader) (*ScanResult, error) // Logic to scan and recover files from a Reader
}

When your plugin is ready, place its source file in the plugins/ directory and compile all plugins by running:

foo@bar$ make plugins

This will build your plugin(s) as .so files and place them in the bin/plugins/ folder, ready to be loaded by Digler.

To verify that your plugins are correctly loaded, run:

foo@bar$ digler formats --plugins ./bin/plugins

This command will lists all supported file formats, including those provided by your custom plugins.

Finally, use the same --plugins flag when scanning to enable your plugins:

foo@bar$ digler scan <image_or_device> --plugins ./bin/plugins

Contributing

Writing a comprehensive file carver is a complex challenge. Each supported file type often requires a format-specific decoder to properly identify, validate, and reconstruct data. This makes the development of Digler both technically demanding and highly modular — the perfect scenario for open source collaboration.

We welcome contributions of all kinds, especially in areas like:

  • Implementing new file format decoders
  • Improving existing carving heuristics
  • Optimizing performance
  • Enhancing the CLI interface
  • Writing tests, docs, or usage examples

Whether you're familiar with Go or just interested in digital forensics, your help is appreciated.

Getting Started

Before you start, please open an issue (or pick an existing one) to discuss your idea or planned changes. This helps avoid duplicate work and keeps development aligned.

Please read our Code of Conduct before getting started.

Once you're ready, fork the repository and submit your pull request!

License

Digler is released under the MIT License.

Frequently asked questions

Is digler free to use?

digler is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does digler do?

Digler is a tool for forensic disk analysis and file recovery. It's designed to help you unearth lost or deleted data from various disk images and raw devices.

What is digler written in?

digler is primarily written in Go. Its source is publicly available at https://github.com/ostafen/digler, and it has 1,501 GitHub stars.