[go: up one dir, main page]

zng-app 0.19.2

Part of the zng project.
Documentation
[package]
name = "zng-app"
version = "0.19.2"
authors = ["The Zng Project Developers"]
edition = "2024"
license = "Apache-2.0 OR MIT"
readme = "README.md"
description = "Part of the zng project."
documentation = "https://zng-ui.github.io/doc/zng_app"
repository = "https://github.com/zng-ui/zng"
categories = ["gui"]
keywords = ["gui", "ui", "user-interface", "zng"]

[features]
# Instrument each widget instance to retain build information.
inspector = []

# Use dynamic dispatch at the app-extension level.
#
# This speeds-up compilation time at the cost of runtime.
dyn_app_extension = []

# Like `cfg(test)` but also visible in docs and integration tests.
test_util = ["multi_app", "deadlock_detection"]

# Allows multiple app instances per-process.
#
# This feature allows multiple apps, one app per thread at a time. The `LocalContext` tracks
# what app is currently running in each thread and `app_local!` statics switch to the value of each app
# depending on the current thread.
#
# Not enabled by default, but enabled by `feature="test_util"`.
multi_app = ["zng-app-context/multi_app"]

# Instrument every widget outer-most node to trace UI methods.
trace_widget = []

# Instrument every property and intrinsic node to trace UI methods.
#
# Note that this can cause very large trace files and bad performance.
trace_wgt_item = []

# Allow app-process crash handler.
#
# Only enables in `not(any(target_arch = "wasm32", target_os = "android", target_os = "ios"))` builds.
crash_handler = [
    "dep:serde_json",
    "dep:minidumper",
    "dep:crash-handler",
    "dep:minidump",
    "dep:linkme",
    "dep:uuid",
]

# Enable trace recording.
#
# Note that this does not auto start recording, to do that run with the `"ZNG_RECORD_TRACE"` env var set.
trace_recorder = ["dep:serde_json", "dep:tracing-chrome"]

# Enables IPC tasks and pre-build views and connecting to views running in another process.
ipc = ["zng-view-api/ipc", "zng-task/ipc"]

# Spawns a thread on app creation that checks and prints `parking_lot` deadlocks.
#
# Not enabled by default, but enabled by `feature="test_util"`.
deadlock_detection = ["zng-task/deadlock_detection"]

[dependencies]
zng-app-proc-macros = { path = "../zng-app-proc-macros", version = "0.7.0", default-features = false }

zng-unique-id = { path = "../zng-unique-id", version = "0.8.1", default-features = false }
zng-env = { path = "../zng-env", version = "0.7.1", default-features = false }
zng-handle = { path = "../zng-handle", version = "0.3.1", default-features = false }
zng-tp-licenses = { path = "../zng-tp-licenses", version = "0.6.0", default-features = false }
zng-clone-move = { path = "../zng-clone-move", version = "0.3.1", default-features = false }
zng-app-context = { path = "../zng-app-context", version = "0.9.1", default-features = false }
zng-time = { path = "../zng-time", version = "0.6.1", default-features = false }
zng-var = { path = "../zng-var", version = "0.10.1", default-features = false }
zng-txt = { path = "../zng-txt", version = "0.4.2", default-features = false }
zng-task = { path = "../zng-task", version = "0.9.1", default-features = false }
zng-view-api = { path = "../zng-view-api", version = "0.16.2", features = [
    "var",
], default-features = false }
zng-state-map = { path = "../zng-state-map", version = "0.7.1", default-features = false }
zng-layout = { path = "../zng-layout", version = "0.7.2", default-features = false }
zng-color = { path = "../zng-color", version = "0.9.2", default-features = false }

tracing = { version = "0.1", default-features = false, features = ["std"] }
tracing-subscriber = { version = "0.3", default-features = false, features = ["std", "fmt", "ansi", "smallvec", "tracing-log", "env-filter"] }
pretty-type-name = { version = "1.0", default-features = false }
parking_lot = { version = "0.12", default-features = false }
serde = { version = "1.0", default-features = false, features = ["std", "derive"] }
bytemuck = { version = "1.15", default-features = false, features = ["derive"] }
flume = { version = "0.11", default-features = false }
atomic = { version = "0.6", default-features = false, features = ["fallback"] }
bitflags = { version = "2.5", default-features = false, features = ["serde", "bytemuck"] }
pastey = { version = "0.1", default-features = false }
once_cell = { version = "1.19", features = ["std", "parking_lot"], default-features = false }
unic-langid = { version = "0.9", default-features = false, features = ["serde"] }
unicase = { version = "2.7", default-features = false }

rustc-hash = { version = "2.0", default-features = false, features = ["std"] }

dunce = { version = "1.0", default-features = false }

[target.'cfg(not(any(target_arch = "wasm32", target_os = "android", target_os = "ios")))'.dependencies]
serde_json = { version = "1.0", optional = true, default-features = false, features = ["std"] }
minidumper = { version = "0.8", optional = true, default-features = false }
crash-handler = { version = "0.6", optional = true, default-features = false }
minidump = { version = "0.26", optional = true, default-features = false }
linkme = { version = "=0.3.33", optional = true, default-features = false }
uuid = { version = "1.3", default-features = false, features = ["std", "v4"], optional = true }
tracing-chrome = { version = "0.7", optional = true, default-features = false }

[target.'cfg(target_arch = "wasm32")'.dependencies]
tracing-web = { version = "0.1", default-features = false }

[target.'cfg(target_os = "android")'.dependencies]
tracing-android = { version = "0.2", default-features = false }

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(never)'] }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--html-in-header", "doc/html-in-header.html"]