Installation
exav is cross-platform (Linux, macOS, Windows) and ships as a single static binary with no runtime dependencies.
From crates.io
Section titled “From crates.io”cargo install exavThat 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.
Build from source
Section titled “Build from source”-
Install a Rust toolchain (1.91 or newer) via rustup.
-
Clone and build:
Terminal window git clone https://github.com/sylvinus/exavcd exavcargo build --release -p exav # -> target/release/exav./target/release/exav --help -
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):
cargo build --release -p exav --no-default-features --features all-formats,decryptSee Feature flags for the full list of build-time
features (including http for URL scanning and signature auto-update).
Packages & release artifacts
Section titled “Packages & release artifacts”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.
cargo install cargo-debcargo build --release -p exavcargo deb -p exav --no-build # binary + optional systemd unitContainer
Section titled “Container”The published image is a wire-level drop-in for the ClamAV Docker image — same clamd port 3310, same protocol:
docker run -d -p 3310:3310 -v exav-db:/var/lib/exav ghcr.io/sylvinus/exavSee the Docker guide for signature population, environment variables, and the dual-container updater pattern.
WASM sandbox module
Section titled “WASM sandbox module”To run the scanner sandboxed (for untrusted signatures), build the
wasm32-wasip1 module:
rustup target add wasm32-wasip1cargo build --release --target wasm32-wasip1 -p exav-core --features wasi-binThe 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.