Skip to content

Installation

exav is cross-platform (Linux, macOS, Windows) and ships as a single static binary with no runtime dependencies.

Terminal window
cargo install exav

That installs the exav binary with the default features — YARA, every archive format, decryption, and the ICAP server. The package is exav; the library crates it is built from are the exav-* ones, and are not needed to install it.

  1. Install a Rust toolchain (1.91 or newer) via rustup.

  2. Clone and build:

    Terminal window
    git clone https://github.com/sylvinus/exav
    cd exav
    cargo build --release -p exav # -> target/release/exav
    ./target/release/exav --help
  3. Put the binary somewhere on your PATH:

    Terminal window
    sudo install -m755 target/release/exav /usr/local/bin/exav

The default build includes YARA and every archive format, and is already a pure-Rust binary with no TLS stack. For an even smaller build (dropping YARA, DLP, and HTTP):

Terminal window
cargo build --release -p exav --no-default-features --features all-formats,decrypt

See Feature flags for the full list of build-time features (including http for URL scanning and signature auto-update).

CI produces these on each v* tag:

Static-musl Linux binaries run on any distro. Targets: {x86_64,aarch64}-linux-musl, {x86_64,aarch64}-apple-darwin, x86_64-windows — attached to the GitHub Release.

The published image is a wire-level drop-in for the ClamAV Docker image — same clamd port 3310, same protocol:

Terminal window
docker run -d -p 3310:3310 -v exav-db:/var/lib/exav ghcr.io/sylvinus/exav

See the Docker guide for signature population, environment variables, and the dual-container updater pattern.

To run the scanner sandboxed (for untrusted signatures), build the wasm32-wasip1 module:

Terminal window
rustup target add wasm32-wasip1
cargo build --release --target wasm32-wasip1 -p exav-core --features wasi-bin

The output is target/wasm32-wasip1/release/exav-wasm.wasm (~5–6 MB). See the WASM sandbox guide for how to run it under wasmtime.

You have the binary — now get signatures and run your first scan. exav ships with no real signature database of its own, so this step is required.