Skip to main content

Installation

Batin can be installed through various package managers or built from source. Choose the method that works best for your platform.

Prerequisites

  • Rust 1.75+ (if building from source)
  • Node.js 18+ (if building documentation)

Package Managers

🍎 macOS (Homebrew)

brew tap ahmeddwalid/batin
brew install batin

🐧 Arch Linux (AUR)

Using yay:

yay -S batin

Using paru:

paru -S batin

🎩 Fedora / RHEL (COPR)

sudo dnf copr enable ahmeddwalid/batin
sudo dnf install batin

🍥 Debian / Ubuntu

sudo add-apt-repository ppa:ahmeddwalid/batin
sudo apt update
sudo apt install batin

🪟 Windows (Chocolatey)

choco install batin

😈 FreeBSD (Ports)

cd /usr/ports/security/batin
make install clean

# Or via pkg
pkg install batin

Using Cargo

If you have Rust installed, you can install Batin directly from crates.io:

cargo install batin

With Specific Features

# Full installation (all features)
cargo install batin --all-features

# Minimal installation (core detection only)
cargo install batin --no-default-features

# With specific features
cargo install batin --features "hashing,archive"

Building from Source

1. Clone the Repository

git clone https://github.com/ahmeddwalid/batin.git
cd batin

2. Build Release Binary

cargo build --release

The binary will be at target/release/batin.

3. Install Locally

# Copy to a directory in your PATH
sudo cp target/release/batin /usr/local/bin/

# Or install via cargo
cargo install --path .

4. Verify Installation

batin --version

Docker

Pull from Docker Hub

docker pull ahmeddwalid/batin:latest

Run Container

# Scan a single file
docker run --rm -v /path/to/files:/data ahmeddwalid/batin scan /data/file.pdf

# Scan a directory
docker run --rm -v /path/to/files:/data ahmeddwalid/batin scan /data --recursive

Build Docker Image Locally

docker build -t batin .

Verify Installation

After installation, verify Batin is working correctly:

# Check version
batin --version

# Run a test scan
echo "test" > /tmp/test.txt
batin scan /tmp/test.txt

# Expected output shows the file type detection result

Platform Support

Platformx86_64x86_32ARM64ARMv7RISC-V
Linux
Windows
macOS
FreeBSD

Feature Flags

Batin supports optional features that can be enabled at compile time:

FeatureDescriptionDefault
cliCommand-line interface
hashingMD5/SHA-256 file hashing
binary-parsingPE/ELF metadata extraction
archiveZIP/TAR archive scanning

Example: Minimal Build

cargo build --release --no-default-features

This builds only the core detection library without CLI or optional features.


Next Steps

Now that Batin is installed, head to the Quick Start guide to perform your first scan!