Skip to main content

System requirements

RequirementMinimum
Rust toolchain1.70 or later
Operating systemWindows 10+, Ubuntu 20.04+, macOS 12+
Disk space~500 MB (source + build artifacts + avatar databases)
RAM256 MB minimum; 512 MB recommended
InternetRequired for initial database download

Platform setup

Install the Rust toolchain first, then install the platform-specific system dependencies below.
# Install Rust (all platforms — Linux/macOS)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
On Windows, download and run the rustup-init.exe installer from rustup.rs.
Rust on Windows requires the Visual Studio Build Tools with the “Desktop development with C++” workload. Without them, cargo build will fail with a linker error.
Install the build tools using winget:
winget install Microsoft.VisualStudio.2022.BuildTools
During installation, select the Desktop development with C++ workload. This includes the MSVC compiler and Windows SDK that Rust’s linker requires.Alternatively, download the installer directly from visualstudio.microsoft.com.

Compilation

Navigate to the prismic_avatar_search/ subdirectory — this is where Cargo.toml lives. Compiles with full optimizations. Use this for normal usage.
cargo run --release
To compile without immediately launching the app:
cargo build --release

Method 2: Development build

Faster to compile, but the resulting binary is slower. Use this when iterating on the source code.
cargo run
Or to compile only:
cargo build

Binary location

After a successful build, the compiled binary is placed in the target/ directory:
target\release\prismic_avatar_search.exe
You can copy this binary anywhere on your system and run it directly — it has no runtime dependencies beyond the files it creates in its working directory (cache/ and config.json).

Dependencies

All dependencies are managed by Cargo and downloaded automatically during the first build. You do not need to install them manually.
CrateVersionPurpose
eframe0.26Native window and event loop (egui host)
egui_extras0.26Additional egui widgets (image rendering)
reqwest0.11HTTP client for VRChat API and database downloads
serde1.0Serialization/deserialization framework
serde_json1.0JSON encoding and decoding
flume0.11Multi-producer, multi-consumer channels for thread communication
image0.25PNG and JPEG decoding for avatar thumbnails
regex1.11Pattern matching for avatar search
anyhow1.0Flexible error handling
thiserror1.0Derive macros for typed errors
env_logger0.11Log output controlled by RUST_LOG environment variable
log0.4Logging facade used throughout the codebase
open5.1Opens avatar URLs in the system browser
chrono0.4Date and time utilities

Environment variables

RUST_LOG

Controls log output verbosity. Set it before running the app:
export RUST_LOG=debug
cargo run --release
Common values: error, warn, info, debug, trace. Use debug when investigating unexpected behavior or reporting issues.

Troubleshooting compilation

If the build fails, try the following:
# Update the Rust toolchain to the latest stable version
rustup update

# Clear the build cache and recompile from scratch
cargo clean
cargo build --release
For Windows linker errors, confirm that the Visual Studio Build Tools are installed with the C++ workload selected. Re-run the VS installer and add the workload if it is missing. For Linux OpenSSL errors (Could not find directory of OpenSSL installation), ensure libssl-dev (Debian/Ubuntu) or openssl-devel (Fedora) is installed.

Build docs developers (and LLMs) love