Build from source
Toolchain
- Rust 1.98.1 through rustup.
rust-toolchain.tomlpins it, so any cargo command in the checkout installs and selects it. - Git, and a C and C++ compiler: the Xcode Command Line Tools on macOS, the MSVC "Desktop development with C++" workload on Windows.
Linux packages
Debian, Ubuntu
sudo apt-get install -y \
git build-essential pkg-config \
libasound2-dev libudev-dev \
libx11-dev libxcursor-dev libxrandr-dev libxi-dev \
libxkbcommon-dev libwayland-dev
| Package | Pulled in by |
|---|---|
build-essential | a C compiler for zstd and ring; a C++ one for HarfBuzz, the web export's font subsetter |
libasound2-dev | ALSA, through rodio and cpal: the audio feature |
libudev-dev | gamepads, through gilrs |
libx11-dev, libxcursor-dev, libxrandr-dev, libxi-dev, libxkbcommon-dev, libwayland-dev | winit, the window feature |
- Fedora:
git gcc gcc-c++ pkgconf-pkg-config alsa-lib-devel systemd-devel libX11-devel libXcursor-devel libXrandr-devel libXi-devel libxkbcommon-devel wayland-devel - Arch:
git base-devel pkgconf alsa-lib systemd-libs libx11 libxcursor libxrandr libxi libxkbcommon wayland
Build
git clone https://github.com/balaurengine/balaur.git
cd balaur
cargo run -p balaur_cli -- run examples/hello --headless --frames 120 # no GPU, no window
cargo run -p balaur_cli --features window -- edit examples/hello # the editor
The windowed build compiles 541 crates the first time; after that it is incremental.
On PATH
cargo build --release -p balaur_cli --features window --bin balaur
export PATH="$PWD/target/release:$PATH"
balaur --version # 0.2.0 (source build)
The binary finds the editor through editor/ beside the sources, at a path baked in at build time. Moved elsewhere, it needs --editor <dir> or BALAUR_EDITOR.
Features
window and extensions are off by default; audio, http, websocket, webtransport, gamend, web and parallel are on. --no-default-features drops those seven.
If it fails
| Error | Fix |
|---|---|
names edition2024 or a version under 1.98.1 | rustup update; drop any rustup override or +toolchain flag |
Package alsa was not found in the pkg-config search path | libasound2-dev, or alsa-lib-devel. The next missing library fails the same way, so install the whole list |
no editor project found; pass --editor <dir> | run it from the checkout, or pass --editor |
Before a pull request, scripts/precommit.sh runs what CI runs; see
CONTRIBUTING.md.