What you need

Kaivalya Editor is a Rust program with a GPU-accelerated UI, so it needs a Rust toolchain and the development files for Wayland, xkbcommon and Vulkan. On Ubuntu 24.04:

sudo apt install cmake clang mold vulkan-tools libwayland-dev \
  libxkbcommon-dev libxkbcommon-x11-dev libvulkan-dev libasound2-dev

Install Rust with rustup. The version is pinned by rust-toolchain.toml and rustup will fetch it for you.

mold is a faster linker, and clang is what invokes it. Both are used through .cargo/config.toml; the build works without them if you remove that file, only more slowly.

Build and run

cargo run --release -- path/to/file.md

The editor takes at most one file. Without one it opens an empty buffer.

The checks

Five, and CI runs all five on every push. make check runs them in the same order:

cargo fmt --all --check
cargo clippy --workspace --all-targets --locked -- -D warnings
RUSTDOCFLAGS="-D warnings" cargo doc --workspace --locked --no-deps --document-private-items
cargo test --workspace --locked
cargo run --release --locked -p kve-bench

The last one is a performance gate rather than a report: it exits non-zero when a measurement misses its budget. What each check covers, and the targets of the Makefile, are in the Technical reference; the changes this codebase asks for most are in the How-to guides.

Why --locked

Without --locked, Cargo is free to resolve a newer version of the UI framework than the one the benchmarks were measured against — which changes the ground underneath a performance measurement, silently. Cargo.lock is committed and is the pin.

Do not run a bare cargo update. Bumping a dependency is deliberate: update it, re-run the benchmarks, and record the numbers.