[package]
name = "lurq"
version = "0.10.10"
edition = "2024"
description = "A Rust UI toolkit with typed components, retained state, reactive signals, GPU rendering, and DevTools."
license = "MIT"
repository = "https://github.com/ivanzaida/lurq"
homepage = "https://ivanzaida.github.io/lurq/"
documentation = "https://docs.rs/lurq"
readme = "../../README.md"
keywords = ["ui", "gui", "reactive", "wgpu", "devtools"]
categories = ["gui", "rendering"]

[features]
default = []
clipboard = ["dep:arboard"]
form = []
image = ["dep:image"]
i18n = []
serde = ["dep:serde_json"]
tokio = ["dep:tokio"]
svg = ["dep:usvg", "dep:lyon", "dep:tiny-skia"]
render = ["dep:bytemuck"]
wgpu = ["render", "dep:wgpu", "dep:pollster", "dep:metal", "dep:wgpu-hal"]
dx12 = ["render", "dep:windows"]
winit = ["dep:winit"]
resources = ["dep:ureq"]
devtools = []
router = []

[dependencies]
arboard = { version = "3", optional = true }
bytemuck = { version = "1", features = ["derive"], optional = true }
cosmic-text = "0.12"
parking_lot.workspace = true
paste = "1"
pollster = { version = "0.4", optional = true }
raw-window-handle = "0.6"
swash = "0.1.19"
wgpu = { version = "24", optional = true }
windows = { version = "0.58", optional = true, features = [
    "Win32_Foundation",
    "Win32_Graphics_Direct3D",
    "Win32_Graphics_Direct3D_Fxc",
    "Win32_Graphics_Direct3D12",
    "Win32_Graphics_Dxgi",
    "Win32_Graphics_Dxgi_Common",
    "Win32_Security",
    "Win32_System_Threading",
] }
winit = { version = "0.30", optional = true }
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif", "bmp", "tiff"], optional = true }
usvg = { version = "0.45", optional = true }
lyon = { version = "1", optional = true }
tiny-skia = { version = "0.11", optional = true }
ureq = { version = "3.3.0", optional = true }
serde_json = { version = "1", optional = true }
tokio = { version = "1.52.3", optional = true, features = ["rt", "rt-multi-thread", "sync"] }
lurq_macros = { version = "0.1.0", path = "../lurq_macros" }

[target.'cfg(target_os = "macos")'.dependencies]
core-foundation-sys = "0.8"
core-video-sys = "0.1"
metal = { version = "0.31", optional = true }
objc2 = "0.6"
wgpu-hal = { version = "24", features = ["metal"], optional = true }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }

[[bench]]
name = "layout"
harness = false

[[bench]]
name = "tree_build"
harness = false

[[bench]]
name = "render_list"
harness = false
