[package]
edition = "2024"
name = "ftui-runtime"
version = "0.3.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Elm-style runtime loop and subscriptions for FrankenTUI."
homepage = "https://github.com/Dicklesworthstone/frankentui"
documentation = "https://docs.rs/ftui-runtime"
readme = "README.md"
keywords = [
"tui",
"terminal",
"ui",
"ftui",
"frankentui",
]
categories = [
"command-line-interface",
"gui",
]
license-file = "LICENSE"
repository = "https://github.com/Dicklesworthstone/frankentui"
resolver = "2"
[features]
asupersync-executor = ["dep:asupersync"]
crossterm-compat = ["ftui-core/crossterm"]
default = []
event-trace = [
"dep:serde",
"dep:serde_json",
"dep:flate2",
]
hamt = ["dep:im"]
native-backend = ["dep:ftui-tty"]
policy-config = [
"dep:serde",
"dep:serde_json",
"dep:toml",
]
render-thread = []
state-persistence = [
"dep:serde",
"dep:serde_json",
"dep:base64",
]
stdio-capture = []
telemetry = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
"dep:tracing-subscriber",
]
tracing = []
[lib]
name = "ftui_runtime"
path = "src/lib.rs"
[[test]]
name = "batch_quit"
path = "tests/batch_quit.rs"
[[test]]
name = "bocpd_unit_tests"
path = "tests/bocpd_unit_tests.rs"
[[test]]
name = "ci_artifact_contract"
path = "tests/ci_artifact_contract.rs"
[[test]]
name = "demo_yaml_validation"
path = "tests/demo_yaml_validation.rs"
[[test]]
name = "deterministic_replay"
path = "tests/deterministic_replay.rs"
required-features = ["event-trace"]
[[test]]
name = "e2e_decision_core"
path = "tests/e2e_decision_core.rs"
[[test]]
name = "e2e_effect_system_cancellation"
path = "tests/e2e_effect_system_cancellation.rs"
[[test]]
name = "e2e_evidence_ledger"
path = "tests/e2e_evidence_ledger.rs"
[[test]]
name = "e2e_inline_mode_scrollback"
path = "tests/e2e_inline_mode_scrollback.rs"
[[test]]
name = "e2e_ivm_incremental_views"
path = "tests/e2e_ivm_incremental_views.rs"
[[test]]
name = "e2e_observability_pipeline"
path = "tests/e2e_observability_pipeline.rs"
[[test]]
name = "e2e_recipe_b_tail_safe"
path = "tests/e2e_recipe_b_tail_safe.rs"
[[test]]
name = "e2e_recipe_d_deterministic_replay"
path = "tests/e2e_recipe_d_deterministic_replay.rs"
required-features = ["event-trace"]
[[test]]
name = "e2e_recipe_f_policy_as_data"
path = "tests/e2e_recipe_f_policy_as_data.rs"
[[test]]
name = "e2e_simulator_replay_fidelity"
path = "tests/e2e_simulator_replay_fidelity.rs"
[[test]]
name = "e2e_snapshot_store"
path = "tests/e2e_snapshot_store.rs"
[[test]]
name = "e2e_sos_barrier"
path = "tests/e2e_sos_barrier.rs"
[[test]]
name = "e2e_unified_evidence"
path = "tests/e2e_unified_evidence.rs"
[[test]]
name = "effect_executor_parity"
path = "tests/effect_executor_parity.rs"
[[test]]
name = "go_nogo_scorecard"
path = "tests/go_nogo_scorecard.rs"
[[test]]
name = "inline_reflow_policy"
path = "tests/inline_reflow_policy.rs"
[[test]]
name = "integration_tick_strategy_lifecycle"
path = "tests/integration_tick_strategy_lifecycle.rs"
[[test]]
name = "lab_runtime_harness"
path = "tests/lab_runtime_harness.rs"
[[test]]
name = "lifecycle_contract"
path = "tests/lifecycle_contract.rs"
[[test]]
name = "log_level_policy_compliance"
path = "tests/log_level_policy_compliance.rs"
[[test]]
name = "metrics_registry_completeness"
path = "tests/metrics_registry_completeness.rs"
[[test]]
name = "mpc_vs_pi_evaluation"
path = "tests/mpc_vs_pi_evaluation.rs"
[[test]]
name = "policy_controller_tests"
path = "tests/policy_controller_tests.rs"
[[test]]
name = "policy_e2e"
path = "tests/policy_e2e.rs"
[[test]]
name = "proptest_allocation_budget_invariants"
path = "tests/proptest_allocation_budget_invariants.rs"
[[test]]
name = "proptest_cost_model_invariants"
path = "tests/proptest_cost_model_invariants.rs"
[[test]]
name = "proptest_ivm_invariants"
path = "tests/proptest_ivm_invariants.rs"
[[test]]
name = "proptest_reactive_invariants"
path = "tests/proptest_reactive_invariants.rs"
[[test]]
name = "proptest_snapshot_store_invariants"
path = "tests/proptest_snapshot_store_invariants.rs"
[[test]]
name = "proptest_statistical_invariants"
path = "tests/proptest_statistical_invariants.rs"
[[test]]
name = "proptest_tick_strategy_invariants"
path = "tests/proptest_tick_strategy_invariants.rs"
[[test]]
name = "proptest_voi_conformal_invariants"
path = "tests/proptest_voi_conformal_invariants.rs"
[[test]]
name = "reactive_bindings_e2e"
path = "tests/reactive_bindings_e2e.rs"
[[test]]
name = "recipe_b_tail_safe_controller"
path = "tests/recipe_b_tail_safe_controller.rs"
[[test]]
name = "resize_migration_compat"
path = "tests/resize_migration_compat.rs"
[[test]]
name = "rollout_drills"
path = "tests/rollout_drills.rs"
[[test]]
name = "schema_compat_matrix"
path = "tests/schema_compat_matrix.rs"
[[test]]
name = "shadow_run_comparator"
path = "tests/shadow_run_comparator.rs"
[[test]]
name = "slo_yaml_validation"
path = "tests/slo_yaml_validation.rs"
[[test]]
name = "sos_barrier_integration"
path = "tests/sos_barrier_integration.rs"
[[test]]
name = "state_persistence_e2e"
path = "tests/state_persistence_e2e.rs"
[[test]]
name = "traceability_matrix"
path = "tests/traceability_matrix.rs"
[[test]]
name = "tracing_span_hierarchy"
path = "tests/tracing_span_hierarchy.rs"
[[test]]
name = "voi_eprocess_unit_tests"
path = "tests/voi_eprocess_unit_tests.rs"
[[bench]]
name = "ivm_bench"
path = "benches/ivm_bench.rs"
harness = false
[[bench]]
name = "pane_terminal_bench"
path = "benches/pane_terminal_bench.rs"
harness = false
[[bench]]
name = "telemetry_bench"
path = "benches/telemetry_bench.rs"
harness = false
required-features = ["telemetry"]
[[bench]]
name = "tick_strategy_bench"
path = "benches/tick_strategy_bench.rs"
harness = false
[dependencies.arc-swap]
version = "1.8.2"
[dependencies.asupersync]
version = "0.2.9"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.flate2]
version = "1.1"
optional = true
[dependencies.ftui-backend]
version = "0.3.1"
[dependencies.ftui-core]
version = "0.3.1"
[dependencies.ftui-i18n]
version = "0.3.1"
[dependencies.ftui-layout]
version = "0.3.1"
[dependencies.ftui-render]
version = "0.3.1"
[dependencies.ftui-style]
version = "0.3.1"
[dependencies.ftui-text]
version = "0.3.1"
[dependencies.ftui-tty]
version = "0.3.1"
optional = true
[dependencies.im]
version = "15.1"
optional = true
[dependencies.opentelemetry]
version = "0.31"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"http-proto",
"reqwest-blocking-client",
]
optional = true
default-features = false
[dependencies.opentelemetry_sdk]
version = "0.31"
optional = true
[dependencies.serde]
version = "1.0.227"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0.145"
optional = true
[dependencies.toml]
version = "0.8"
optional = true
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-opentelemetry]
version = "0.32"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.20"
features = [
"registry",
"env-filter",
]
optional = true
[dependencies.unicode-segmentation]
version = "1.12.0"
[dependencies.unicode-width]
version = "0.2.2"
[dependencies.web-time]
version = "1.1.0"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["html_reports"]
[dev-dependencies.flate2]
version = "1.1"
[dev-dependencies.ftui-core]
version = "0.3.1"
features = ["test-helpers"]
[dev-dependencies.im]
version = "15.1"
[dev-dependencies.opentelemetry]
version = "0.31"
[dev-dependencies.opentelemetry_sdk]
version = "0.31"
features = ["testing"]
[dev-dependencies.proptest]
version = "1.7.0"
[dev-dependencies.serde]
version = "1.0.227"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0.145"
[dev-dependencies.tempfile]
version = "3.22.0"
[dev-dependencies.tracing-opentelemetry]
version = "0.32"
[dev-dependencies.tracing-subscriber]
version = "0.3.20"
features = [
"registry",
"env-filter",
]