[package]
name = "telar"
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
description = "A modular Rust UI framework with its own template language, reactive signals and a self-contained renderer."
keywords = ["ui", "gui", "framework", "reactive", "declarative"]
categories = ["gui", "rendering", "graphics"]
readme = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
[features]
default = ["runtime", "desktop", "hardware", "software"]
runtime = [
"dep:platform-core",
"dep:platform-android",
"dep:renderer-core",
"dep:renderer-assets",
"dep:renderer-text",
"dep:reactive-core",
"dep:layout-core",
"dep:theme-core",
"dep:ui-core",
"dep:ui-tree",
"dep:geometry-core",
"dep:toml",
"dep:tracing",
"dep:libc",
]
hardware = ["runtime", "dep:renderer-hardware", "dep:platform-headless"]
software = ["runtime", "dep:renderer-software"]
desktop = ["runtime", "dep:platform-desktop"]
platform-headless = ["runtime", "software", "dep:platform-headless"]
dev = ["runtime", "desktop", "dep:libloading", "dep:serde_json"]
preview = ["runtime", "desktop"]
preview-headless = ["platform-headless", "dep:image"]
plugin = ["runtime"]
testing = ["runtime"]
plugin-host = ["plugin", "dep:libloading"]
components = ["runtime", "dep:ui-components"]
navigate = ["runtime", "dep:navigate-core"]
async-assets = ["runtime", "ui-core/async-assets"]
http-assets = ["async-assets", "dynamic-svg", "dep:ureq"]
di = ["services-core/di"]
runtime-catalog = ["i18n-core/runtime-catalog"]
watch = ["runtime", "dep:notify"]
svg = ["ui-core?/svg"]
dynamic-svg = ["svg", "renderer-assets?/dynamic-svg"]
dynamic-image = ["renderer-assets?/dynamic-image"]
image-avif = ["dynamic-image", "renderer-assets?/image-avif"]
image-bmp = ["dynamic-image", "renderer-assets?/image-bmp"]
image-dds = ["dynamic-image", "renderer-assets?/image-dds"]
image-exr = ["dynamic-image", "renderer-assets?/image-exr"]
image-ff = ["dynamic-image", "renderer-assets?/image-ff"]
image-gif = ["dynamic-image", "renderer-assets?/image-gif"]
image-hdr = ["dynamic-image", "renderer-assets?/image-hdr"]
image-ico = ["dynamic-image", "renderer-assets?/image-ico"]
image-pnm = ["dynamic-image", "renderer-assets?/image-pnm"]
image-qoi = ["dynamic-image", "renderer-assets?/image-qoi"]
image-tga = ["dynamic-image", "renderer-assets?/image-tga"]
image-tiff = ["dynamic-image", "renderer-assets?/image-tiff"]
image-webp = ["dynamic-image", "renderer-assets?/image-webp"]
image-formats = ["dynamic-image", "renderer-assets?/image-formats"]
[dependencies]
image = { version = "0.25.10", default-features = false, features = ["png"], optional = true }
libloading = { version = "0.9.0", optional = true }
raw-window-handle = { workspace = true }
serde = { workspace = true }
serde_json = { version = "1", optional = true }
toml = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
geometry-core = { workspace = true, optional = true }
i18n-core = { workspace = true }
layout-core = { workspace = true, optional = true }
motion-core = { workspace = true }
navigate-core = { workspace = true, optional = true }
platform-core = { workspace = true, optional = true }
platform-headless = { workspace = true, optional = true }
reactive-core = { workspace = true, optional = true }
renderer-assets = { workspace = true, optional = true }
renderer-core = { workspace = true, optional = true }
renderer-hardware = { workspace = true, optional = true }
renderer-software = { workspace = true, optional = true }
renderer-text = { workspace = true, optional = true }
services-core = { workspace = true }
telar-macros = { workspace = true }
theme-core = { workspace = true, optional = true }
ui-components = { workspace = true, optional = true }
ui-core = { workspace = true, optional = true }
ui-tree = { workspace = true, optional = true }
ureq = { version = "3.4.0", optional = true }
notify = { version = "8.2.0", optional = true }
[target.'cfg(not(target_os = "android"))'.dependencies]
platform-desktop = { workspace = true, optional = true }
[target.'cfg(target_os = "android")'.dependencies]
platform-android = { workspace = true, optional = true }
[target.'cfg(all(unix, not(target_os = "android")))'.dependencies]
libc = { version = "0.2.186", optional = true }
[dev-dependencies]
platform-headless = { workspace = true }
telar = { path = ".", features = ["testing", "http-assets", "watch"] }
renderer-record = { workspace = true }
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(telar_hot_reload)',
'cfg(telar_preview)',
] }