This directory contains scripts for building and distributing MARS.
- Python 3.13+
- UV (recommended) or pip with build module
- Homebrew (macOS, for building dfvfs wheels)
The easiest way to create a full release is using the automated script:
./packaging/create-release.shThis script automatically:
- Builds the MARS wheel
- Creates platform-specific distribution directories (macOS ARM64, macOS x86_64, Windows)
- Copies install scripts, README, THIRD-PARTY-NOTICES, and license files
- Includes pre-built vendor wheels (if available in
vendor/wheels/) - Creates ZIP archives ready for GitHub release
Output is placed in the release/ directory.
dfvfs (Digital Forensics Virtual File System) enables MARS to directly read forensic disk images (E01/EWF, raw, DMG, etc.). Without dfvfs, MARS can only scan live systems and mounted directories.
dfvfs and its libyal dependencies require platform-specific C compilation. To include pre-built wheels in your distribution:
# Build wheels for current platform
./packaging/build-wheels.sh
# Or specify output directory
./packaging/build-wheels.sh /path/to/outputThis builds:
- Pure Python packages: dfvfs, dfdatetime, dtfabric, PyYAML
- macOS-specific: xattr
- libyal packages: libewf-python, libfsapfs-python, libfshfs-python, etc.
- pytsk3 (requires sleuthkit via Homebrew on macOS)
Wheels are placed in vendor/wheels/{platform}/ where platform is one of:
macos-arm64- Apple Siliconmacos-x86_64- Intel Maclinux-x86_64- Linuxwindows-x64- Windows
Note: You need to run this on each target platform to build platform-specific wheels.
If you prefer manual control:
-
Build the wheel:
./packaging/build.sh # Or: uv build --wheelThe wheel will be created in
dist/mars-X.X.X-py3-none-any.whl -
Run the release script to create distribution packages:
./packaging/create-release.sh
- macOS: macOS 11+ (Big Sur or later), Python 3.13+
- Windows: Windows 10/11, Python 3.13+
-
Extract the distribution archive
-
Open Terminal in the extracted folder
-
Run the installer:
chmod +x install.sh ./install.sh
-
Follow the prompts
- Extract the distribution archive
- Double-click
install.bat(or run from Command Prompt) - Follow the prompts
- MARS application in an isolated virtual environment
marslauncher script in the installation directory- Optional: Kaleido for PDF/PNG export (prompted during install)
- Optional: fuse-t for mounting forensic images (prompted during install, macOS only)
| Package | Purpose | Platform |
|---|---|---|
| kaleido | PDF/PNG export for timeline visualizations | macOS/Windows |
| fuse-t | Mount forensic disk images (E01, raw) as virtual file systems | macOS only |
# macOS
.venv/bin/pip install kaleido
# Windows
.venv\Scripts\pip install kaleidofuse-t allows MARS to mount forensic disk images directly for analysis without extracting them first. Install via Homebrew:
brew tap macos-fuse-t/homebrew-cask
brew install fuse-t fuse-t-sshfsNote: Homebrew must be installed first. Get it from https://brew.sh
git clone https://github.com/WarpedWing/mars.git
cd mars
uv sync # or: pip install -e .
uv run mars # launch MARSAfter installation:
# From installation directory
./mars # macOS
mars.bat # Windows
# Or if added to PATH
marsSimply delete the installation folder. MARS is fully self-contained.
# macOS
rm -rf /path/to/mars-installation
# Windows
rmdir /s /q C:\path\to\mars-installationMake sure Python 3.13+ is installed and in your PATH:
- macOS: Install from https://python.org or via Homebrew (
brew install python@3.13) - Windows: Install from https://python.org (check "Add Python to PATH")
If you see permission errors when running bundled binaries:
chmod +x .venv/lib/python3.*/site-packages/resources/macos/bin/*First time running MARS or its bundled tools may trigger Gatekeeper. Allow in System Preferences > Security & Privacy.
First run may trigger Windows Defender SmartScreen. Click "More info" > "Run anyway" if you trust the source.