mrkeyoor.com_
Wed 23 Sept 06:50 UTC
Dev Toolsevaluationupdated 23 Sept 2026

vol-rs review

vol-rs is a Rust port of the Volatility 3 memory-forensics framework. It lets investigators examine Windows, Linux, and macOS memory images with familiar Volatility plugin names and output, while packaging features such as symbol handling, YARA matching, disassembly, and archive writing into one binary.

Verdict

Our vol-rs run passed all 266 tests, but the release build took 218 seconds, so the port is easier to trust than it is quick to compile. Use it for a measured trial on Windows and Linux evidence that matches the project's checked paths. Keep Python Volatility 3 beside it when a case involves macOS, 32-bit memory, an unverified dump format, or a requirement for the Foundation's own implementation.

We ran it

Lab card: what happened when we ran vol-rsScreenshot of vol-rs (github.com/daffainfo/vol-rs)
Install✓ · 10s344 packages
Build✓ · 218s
Tests✓ · 27s266 passed · 0 failed of 266 (cargo test)
Repo348 files~64,975 lines of source · 8.7 MB · 1 CI workflows · tests dir

Answers from our run

Does vol-rs build from source?

Dependencies installed in 10 seconds (344 packages), and the build succeeded in 218 seconds. We cloned commit 4c1076f into a clean Debian container with 3 CPUs and no project-specific setup.

Do vol-rs's tests pass?

Yes: 266 of 266 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use vol-rs?

Labs that require proven macOS analysis today: the README says the macOS plugins have not been run against a real Mac capture.

What are the alternatives to vol-rs?

Volatility 3, Velociraptor. Our vol-rs run passed all 266 tests, but the release build took 218 seconds, so the port is easier to trust than it is quick to compile.

Setup4/510-second install; the release build took 218 seconds
Docs5/5Commands, symbol paths, differences, and untested paths are explicit
Community2/5187 stars and recent maintenance, but little issue activity
Maturity3/5266 tests pass; several evidence paths lack real-capture checks

Who it’s for

Investigators who already use Volatility 3 and want a compiled tool with the same command shape.
Incident-response teams working with Windows or Linux captures like the ones the project has compared against Python Volatility.
Rust developers who want to inspect or extend a memory-forensics implementation with a passing local test suite.
Offline analysts who prefer built-in crypto, YARA, disassembly, image, and archive support over a Python environment.

Who it’s NOT for

Labs that require proven macOS analysis today: the README says the macOS plugins have not been run against a real Mac capture.
Investigators whose cases depend on 32-bit images or less-tested dump formats: the README limits real-capture checks to 64-bit VMware and LiME inputs.
Data pipelines that require Arrow or Parquet output: the command accepts those renderer names and then refuses them.
Teams that require tests, linting, and dependency auditing on every change: the only workflow builds release binaries, and open issue 3 asks for those missing CI gates.
Buyers who need an endorsed Volatility Foundation product: the README explicitly says this port is unaffiliated and unendorsed.

Setup reality

Our sandbox installed 344 packages in 10 seconds at commit 4c1076f. The release build succeeded in 218 seconds, then all 266 cargo tests passed in 27 seconds. The checkout held 348 files, about 64,975 source lines, and used 8.7 MB before dependencies.

Building requires Rust 1.85 or newer and one cargo build --release command. No optional package is documented. Real analysis still needs a memory image and suitable symbols; Windows symbols may be fetched from Microsoft's server and cached locally.

There is no Dockerfile. v1.0.1 supplies checksummed binaries for Linux, macOS, and Windows, but the README's real-evidence checks cover a narrower set: 64-bit VMware and LiME captures. Arrow and Parquet renderer names are accepted but refused.

Rust 1.85 buys a familiar Volatility command line

vol-rs requires Rust 1.85 or newer and aims to preserve Volatility 3's plugin names, options, defaults, and rendered output. An investigator can point it at a memory image, select a plugin such as windows.pslist or linux.bash, and choose familiar renderers. That compatibility is the reason to care. This is a port for people with existing Volatility habits, rather than a new forensic workflow that asks them to relearn the job.

The 8.7 MB checkout contains built-in support for jobs that Python Volatility commonly hands to separate libraries: crypto, YARA matching, x86 disassembly, PNG output, and tar archives. Windows kernel symbols can come from Microsoft's symbol server, after which vol-rs converts and caches them. Local symbol packs live under the XDG data directory by default, and another directory can be supplied through a flag or environment variable. An air-gapped lab still needs to stage those files before analysis.

All 266 tests passed, while the release build took 218 seconds

Our run at commit 4c1076f installed 344 packages in 10 seconds. The release build succeeded, but it needed 218 seconds on the stated 3-CPU, 12 GB sandbox. That is a one-time compilation cost for a pinned binary, not evidence about plugin speed on a memory image. The project README publishes its own comparison tables, but our sandbox did not reproduce those forensic workloads, so we would benchmark the exact plugins and captures used by a team before changing a case workflow.

The test result was cleaner: cargo finished 266 tests in 27 seconds with no failures. The repository has a dedicated tests directory and 348 tracked files, with roughly 64,975 lines of source. Those numbers make the port inspectable, yet they do not prove that every parser is safe against hostile evidence or that every plugin matches upstream on every operating-system build. They show that the checked commit installed, compiled, and completed its supplied suite in our container.

What happened when we ran it

Our sandbox installed vol-rs in 10 seconds, built it in 218 seconds, and passed 266 of 266 tests in another 27 seconds. Nothing in those three steps failed. The build was the expensive part by a wide margin, while the complete test command took less than one seventh as long. We used an unprivileged container with no secrets, so this result covers repository setup and tests without claiming that a real evidence image was processed.

The checkout occupied 8.7 MB before the 344-package install. It included one CI workflow, no Dockerfile, and a tests directory. A Docker-based lab must write its own image or start from a Rust base. Anyone who does not want to compile can use v1.0.1 archives for Linux on two architectures, macOS on two architectures, or 64-bit Windows; the release also provides SHA-256 files for each archive.

v1.0.1 fixed concrete parser and release faults

Release v1.0.1 landed on September 12, 2026. Its notes say malformed AVML and ELF inputs now return an error instead of crashing, Windows kernel symbol fetching now works without Python Volatility installed beside the binary, and release assets are built from the tag to which they are attached. Short plugin names also work in that release. These are practical fixes for evidence handling and artifact traceability, not cosmetic release notes.

The repository's only open item is issue 3, which asks for mandatory tests, formatting, linting, dependency auditing, and malformed-input checks in CI. The current workflow builds locked release binaries across five platform targets and verifies tag identity, but it does not run the 266-test suite. A passing local suite and a release-only workflow answer different questions: one checks the commit we ran, while the other controls what future changes must pass before an artifact is published.

Real-capture coverage stops short of every advertised parser

The README names Windows 10 build 19045 and Linux 6.8 as its real-capture base. It also says the macOS plugins have been reviewed against published Darwin symbols but have not been run against a real Mac image. Only 64-bit captures received the documented evidence checks. If your work involves 32-bit Intel or PAE paging, passing unit tests are the project's stated evidence today.

Input formats have a similar boundary. VMware and LiME captures were used for real checks, while crash dump, AVML, QEMU, ELF core, and Xen paths remain on the to-do list for evidence-based validation. Arrow and Parquet renderers are accepted at the command line but deliberately refused. These admissions are good documentation. They also provide a simple adoption rule: verify your capture type, operating-system generation, and required output before making vol-rs the only tool in a case.

A September push shows maintenance, not long field history

GitHub recorded the last push on September 12, 2026, when v1.0.1 was published. The repository had 187 stars and one combined open issue or pull request when fetched. It was created on August 30, so active maintenance and a recent release are visible, while years of operational history are not. The Volatility Software License also applies because the project describes itself as an Addition derived from Volatility 3.

vol-rs is worth running beside Python Volatility on the Windows and Linux evidence your team already understands. The 266 passing tests and explicit compatibility target give that trial a better base than the project's age suggests. Its own limits should decide promotion: keep the upstream tool available until your actual capture formats and plugins produce matching results, and do not treat a compiled port as Foundation endorsement.

Alternatives

ProjectWhat it isPick it when
Volatility 3The Foundation's Python memory-forensics framework and the compatibility target for vol-rs.pick this instead when official upstream behavior, broader field history, or Python plugin development matters more than a compiled Rust binary.
VelociraptorAn endpoint collection and digital-forensics platform built for querying many machines.pick this instead when remote collection and fleet-wide hunting matter more than Volatility-compatible analysis of a local memory image.

What people are saying

  1. [velocity-scout] daffainfo/vol-rs

Sources

  1. vol-rs README
  2. vol-rs v1.0.1 release
  3. Release workflow
  4. Open CI and dependency-audit issue
  5. Volatility Software License

More dev tools reviews

skill-cabinet · PrettyPrague · Cybersecurity-Projects · crabbox · asdf · discord.js · the whole board →