[package]
name = "lgui"
version = "0.2.2"
edition = "2024"
publish = ["crates-io"]
description = "A reactive Rust GUI library with native and portable rendering backends"
license.workspace = true
readme = "README.md"
repository = "https://github.com/lius-new/lgui"
homepage = "https://github.com/lius-new/lgui"
documentation = "https://docs.rs/lgui"
keywords = ["gui", "desktop", "widgets", "reactive"]
categories = ["gui", "rendering"]
[workspace]
members = [
"crates/lgui-assets",
"crates/lgui-core",
"crates/lgui-diagnostics",
"crates/lgui-platform-win32",
"crates/lgui-platform-winit",
"crates/lgui-render-api",
"crates/lgui-render-skia",
"crates/lgui-router",
"crates/lgui-services",
"crates/lgui-store",
"crates/lgui-widgets",
"examples/backdrop",
]
resolver = "2"
[workspace.package]
license = "MIT OR Apache-2.0"
[features]
default = ["renderer-skia", "router", "store", "widgets"]
async = ["lgui-core/async"]
desktop = ["backend-winit", "clipboard", "open-url", "dialogs", "accessibility"]
backend-winit = ["dep:lgui-platform-winit"]
accessibility = ["backend-winit", "lgui-platform-winit/accessibility"]
renderer-skia = ["dep:lgui-render-skia", "images", "svg", "lgui-assets/renderer-skia"]
renderer-skia-software = ["renderer-skia", "backend-winit", "lgui-platform-winit/renderer-skia"]
renderer-skia-gl = ["renderer-skia-software", "lgui-platform-winit/renderer-skia-gl", "lgui-render-skia/renderer-skia-gl"]
renderer-skia-vulkan = ["renderer-skia-software", "lgui-platform-winit/renderer-skia-vulkan", "lgui-render-skia/renderer-skia-vulkan"]
renderer-skia-vulkan-windows = ["renderer-skia-vulkan"]
renderer-skia-vulkan-linux = ["renderer-skia-vulkan"]
renderer-skia-metal = ["renderer-skia-software", "lgui-platform-winit/renderer-skia-metal", "lgui-render-skia/renderer-skia-metal"]
clipboard = ["lgui-services/clipboard", "lgui-platform-winit?/clipboard"]
dialogs = ["lgui-services/dialogs", "lgui-platform-winit?/dialogs"]
open-url = ["lgui-services/open-url", "lgui-platform-winit?/open-url"]
diagnostics = ["dep:lgui-diagnostics", "lgui-platform-winit?/diagnostics", "lgui-platform-win32?/diagnostics"]
diagnostics-serde = ["diagnostics", "lgui-core/diagnostics-serde", "lgui-diagnostics/serde"]
diagnostics-timing = ["diagnostics", "lgui-core/diagnostics-timing", "lgui-platform-win32?/diagnostics-timing"]
persistent-cache = ["lgui-core/persistent-cache", "lgui-assets?/persistent-cache", "lgui-platform-winit?/persistent-cache"]
system-diagnostics = ["diagnostics", "lgui-platform-win32/system-diagnostics"]
images = ["dep:lgui-assets", "lgui-assets/images", "lgui-platform-winit?/images", "lgui-platform-win32?/images"]
multi-window = ["lgui-platform-winit?/multi-window"]
notifications = ["lgui-services/notifications", "lgui-platform-winit?/notifications"]
notifications-win32 = ["notifications", "lgui-platform-winit?/notifications-win32", "lgui-platform-win32/notifications-win32"]
router = ["dep:lgui-router"]
store = ["dep:lgui-store", "lgui-platform-winit?/store", "lgui-platform-win32?/store"]
svg = ["images", "lgui-assets/svg", "lgui-platform-winit?/svg", "lgui-platform-win32?/svg"]
theme = ["dep:lgui-widgets"]
tokio = ["lgui-core/tokio"]
tray = ["lgui-services/tray"]
tray-win32 = ["tray", "lgui-platform-winit?/tray-win32", "lgui-platform-win32/tray-win32"]
widgets = ["theme", "lgui-widgets/widgets"]
[dependencies]
lgui-assets = { version = "0.2.2", path = "crates/lgui-assets", optional = true, default-features = false }
lgui-core = { version = "0.2.2", path = "crates/lgui-core", default-features = false }
lgui-diagnostics = { version = "0.2.2", path = "crates/lgui-diagnostics", optional = true }
lgui-platform-winit = { version = "0.2.2", path = "crates/lgui-platform-winit", optional = true, default-features = false }
lgui-render-api = { version = "0.2.2", path = "crates/lgui-render-api" }
lgui-render-skia = { version = "0.2.2", path = "crates/lgui-render-skia", optional = true, default-features = false }
lgui-router = { version = "0.2.2", path = "crates/lgui-router", optional = true }
lgui-services = { version = "0.2.2", path = "crates/lgui-services", default-features = false }
lgui-store = { version = "0.2.2", path = "crates/lgui-store", optional = true }
lgui-widgets = { version = "0.2.2", path = "crates/lgui-widgets", optional = true, default-features = false }
[target.'cfg(windows)'.dependencies]
lgui-platform-win32 = { version = "0.2.2", path = "crates/lgui-platform-win32", optional = true, default-features = false }
[[example]]
name = "counter"
required-features = ["renderer-skia-software", "widgets"]