Skip to main content

Feature Flags

lui has no compile-time feature flags. All core functionality is always enabled. The feature set is selected by which driver crate you depend on.

Driver Selection

CrateUse Case
lui-driver-winitDesktop applications with winit windows
lui-driver-eguiEmbedding inside egui/eframe
lui-driver-bevyBevy game engine integration

Optional Crates

CratePurpose
lui-uiComponent framework (Elm architecture, reactive state)
lui-devtoolsVisual devtools panel

No Cargo Features

The workspace intentionally avoids Cargo features to keep the dependency tree simple. Instead of feature-gating optional functionality, separate crates are used:

# Core (always needed)
lui = "0.1"

# Window management (pick one)
lui-driver-winit = "0.1"
# OR lui-driver-egui = "0.1"
# OR lui-driver-bevy = "0.1"

# Optional extras
lui-ui = "0.1" # if using component framework
lui-devtools = "0.1" # if embedding devtools

This approach means you only compile what you actually use, without conditional compilation complexity.