Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Augani/kael/llms.txt

Use this file to discover all available pages before exploring further.

Kael is a native desktop UI framework that compiles against platform graphics APIs — Metal on macOS, Blade (Vulkan) on Linux, and DirectX 11 on Windows. Most of the setup is handled by Cargo, but Linux targets require a handful of system libraries to be present before you build. This page covers everything you need to get from zero to a compiling project.

Adding Kael as a dependency

Kael 0.5.1 is published to crates.io. You can also depend on the Git repository directly to track the latest changes.
[dependencies]
kael = "0.5.1"
After adding the dependency, run cargo build to fetch and compile Kael and its transitive dependencies. The first build takes several minutes because Kael compiles platform shaders and links against system graphics libraries.

Cargo features

Kael exposes optional features you can enable depending on what your application needs. The default feature set is suitable for most desktop applications.
FeatureDefaultDescription
defaultYesFont loading (font-kit), Wayland support, X11 support, Windows manifest
mediaNoAudio and video playback via kael-media
screen-captureNoScreen and media capture via scap
test-supportNoTesting utilities, leak detection, and randomized test helpers
inspectorNoRuntime UI inspector via kael-macros
Enable features in your Cargo.toml:
Cargo.toml
[dependencies]
kael = { version = "0.5.1", features = ["media", "inspector"] }
The test-support feature is intended for use in [dev-dependencies] or test crates. Enabling it in a production build adds overhead and is not recommended.

Linux system dependencies

On Linux, Kael requires system libraries for Wayland, Vulkan, WebKit, GTK, D-Bus, and notifications. Install them using your distribution’s package manager before running cargo build.
sudo apt install \
  libwayland-dev \
  libxkbcommon-dev \
  libvulkan-dev \
  libwebkit2gtk-4.1-dev \
  libgtk-3-dev \
  libdbus-1-dev \
  libnotify-dev
If any of these libraries are missing, the build will fail with a linker error or a pkg-config error naming the missing library. Install the missing package and retry cargo build.

Platform support

Kael uses a different GPU backend on each platform. You do not need to configure this manually — Cargo selects the correct backend for your target at compile time.
PlatformRendererStatus
macOSMetalFull support
Linux (X11)Blade (Vulkan)Full support
Linux (Wayland)Blade (Vulkan)Full support
WindowsDirectX 11Full support

Building and running examples

Once your dependencies are installed, verify your setup by checking and running the project:
# Type-check without producing a binary
cargo check -p kael

# Run the test suite
cargo test -p kael

# Run an example from the Kael repository
cargo run -p kael --example hello_world
The following examples are available in crates/kael/examples/:
cargo run -p kael --example hello_world
cargo run -p kael --example animation
cargo run -p kael --example recycling_list
cargo run -p kael --example webview_demo
cargo run -p kael --example form_controls
cargo run -p kael --example daemon_app
cargo run -p kael --example platform_features
Running examples requires cloning the Kael Git repository. They are not available when depending on the published crate.

Next steps

Quickstart

Build an interactive counter application from scratch

Entities and context

Learn how Kael’s reactive entity model works

Build docs developers (and LLMs) love