ftui-core 0.2.1

Terminal lifecycle, capabilities, and event parsing for FrankenTUI.
Documentation
[package]
name = "ftui-core"
version = "0.2.1"
edition = "2024"
license-file = "../../LICENSE"
description = "Terminal lifecycle, capabilities, and event parsing for FrankenTUI."
repository = "https://github.com/Dicklesworthstone/frankentui"
homepage = "https://github.com/Dicklesworthstone/frankentui"
documentation = "https://docs.rs/ftui-core"
readme = "../../README.md"

[features]
default = []
# Enable the Crossterm terminal backend (legacy). When disabled, terminal_session
# and Event::from_crossterm are unavailable. Prefer the native ftui-tty backend.
crossterm = ["dep:crossterm"]
# Enable structured logging with tracing
tracing = ["dep:tracing"]
# Enable JSON output for production logging
tracing-json = ["tracing", "dep:tracing-subscriber"]
# Enable runtime terminal capability probing (DA queries, OSC probes).
# Requires exclusive terminal ownership; probes are bounded by timeouts.
caps-probe = []
test-helpers = []

[dependencies]
ahash = "0.8"
arc-swap = "1.8.2"
bitflags = "2.10.0"
unicode-display-width = "0.3.0"
unicode-segmentation = "1.12.0"
unicode-width = "0.2.2"
web-time = "1.1.0"

# Optional tracing support (platform-independent)
tracing = { version = "0.1.41", optional = true }
tracing-subscriber = { version = "0.3.20", features = ["json", "env-filter"], optional = true }

# Native terminal backend dependency (not available on wasm32-unknown-unknown).
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
crossterm = { version = "0.29.0", optional = true }

# Unix-only signal handling for cleanup on SIGINT/SIGTERM.
[target.'cfg(unix)'.dependencies]
signal-hook = { version = "0.4.3", features = ["iterator"] }

[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
# For spike PTY tests
portable-pty = "0.9.0"
proptest = "1.7.0"

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