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.