Installation
For the happy path (cargo install nyx-scanner, release binary on PATH), see the README. This page covers platform-specific notes and upgrade paths.
Supported platforms
Release binaries are published for:
| Platform | Archive |
|---|---|
| Linux x86_64 | nyx-x86_64-unknown-linux-gnu.zip |
| macOS Intel | nyx-x86_64-apple-darwin.zip |
| macOS Apple Silicon | nyx-aarch64-apple-darwin.zip |
| Windows x86_64 | nyx-x86_64-pc-windows-msvc.zip |
Build from source works on any stable Rust 1.88+ target (edition 2024).
Verify the download
Each release attaches a SHA256SUMS file. When the maintainer signs the release, a detached SHA256SUMS.asc is published alongside it.
# Verify the checksum file's signature (skip if .asc isn't present)
gpg --verify SHA256SUMS.asc SHA256SUMS
# Then check your archive against it
sha256sum -c SHA256SUMS --ignore-missing
If sha256sum is missing on macOS, shasum -a 256 -c SHA256SUMS --ignore-missing is equivalent.
Windows
Expand-Archive -Path nyx-x86_64-pc-windows-msvc.zip -DestinationPath .
Move-Item -Path .\nyx.exe -Destination "C:\Program Files\Nyx\"
# Add C:\Program Files\Nyx to PATH in System Properties → Environment Variables
nyx --version
Build from source
git clone https://github.com/elicpeter/nyx.git
cd nyx
cargo build --release
# Binary at target/release/nyx
The frontend is built and embedded into the binary during cargo build, so there’s no separate step for nyx serve. Node is only required if you’re working on the frontend itself; see CONTRIBUTING.md.
Optional features:
| Flag | Adds |
|---|---|
--features smt | Bundles Z3 for stronger path-constraint solving. MIT-licensed; distributors should include Z3’s license in their attribution |
--features smt-system-z3 | Links against a system-installed Z3 instead of bundling |
Upgrading
Nyx stores its scanner version in the project’s index database. When the binary’s version differs from the stored version, the index is wiped on the next scan and rebuilt against the new engine. You’ll see one info-level log line:
engine version changed (0.4.0 → 0.5.0), rebuilding index
No flag needed. If you see this on every scan, the metadata row isn’t being persisted; file an issue.
Corrupt database recovery
If the SQLite file itself is damaged (killed scan, full disk), delete it and let the next scan rebuild from scratch:
rm "$(nyx config path)"/<project>.sqlite*
Only the named project’s rows are affected.