[package]
edition = "2021"
rust-version = "1.87"
name = "revue"
version = "2.45.0"
build = "build.rs"
exclude = [
"revue-cli/",
"references/",
"playground/",
"extensions/",
"tools/",
"docs/",
"tree-sitter-revue-css/",
".claude/",
".github/",
"CONTRIBUTING.md",
"cliff.toml",
"deny.toml",
"lefthook.yml",
"*.rlib",
"badge",
"spinner",
"tabs",
]
include = [
"build.rs",
"src/**/*.rs",
"src/style/themes/*.css",
"Cargo.toml",
"LICENSE*",
"README.md",
"benches/**/*.rs",
"examples/**/*.rs",
"tests/**/*.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Vue-style TUI framework for Rust with CSS styling"
homepage = "https://hawk90.github.io/revue"
documentation = "https://docs.rs/revue"
readme = "README.md"
keywords = [
"tui",
"terminal",
"css",
"reactive",
"ui",
]
categories = [
"command-line-interface",
"gui",
]
license = "MIT"
repository = "https://github.com/hawk90/revue"
[features]
all-gui = [
"std",
"syntax-highlighting",
"qrcode",
"sysinfo",
"diff",
"clipboard",
"hot-reload",
]
async = ["dep:tokio"]
clipboard = ["dep:arboard"]
config = [
"dep:serde",
"dep:toml",
"dep:dirs",
]
default = [
"async",
"config",
]
devtools = []
diff = ["dep:similar"]
full = [
"devtools",
"async",
"config",
"tracing",
"markdown",
"syntax-highlighting",
"image",
"qrcode",
"sysinfo",
"diff",
"clipboard",
"hot-reload",
]
gui = [
"async",
"config",
"markdown",
"image",
]
hot-reload = ["dep:notify"]
http = ["dep:reqwest"]
image = [
"dep:image",
"dep:base64",
]
markdown = ["dep:pulldown-cmark"]
qrcode = ["dep:qrcode"]
std = [
"async",
"config",
"tracing",
]
syntax-highlighting = [
"dep:tree-sitter-highlight",
"dep:tree-sitter-rust",
"dep:tree-sitter-python",
"dep:tree-sitter-javascript",
"dep:tree-sitter-json",
"dep:tree-sitter-go",
"dep:tree-sitter-bash",
"dep:tree-sitter-html",
"dep:tree-sitter-css",
"dep:tree-sitter-toml-ng",
"dep:tree-sitter-yaml",
"dep:tree-sitter-sequel",
"dep:tree-sitter-md",
]
sysinfo = ["dep:sysinfo"]
tracing = [
"dep:tracing",
"dep:tracing-subscriber",
]
[lib]
name = "revue"
path = "src/lib.rs"
[[example]]
name = "alert"
path = "examples/alert.rs"
[[example]]
name = "animations"
path = "examples/animations.rs"
[[example]]
name = "benchmark_rendering"
path = "examples/benchmark_rendering.rs"
[[example]]
name = "callout"
path = "examples/callout.rs"
[[example]]
name = "card"
path = "examples/card.rs"
[[example]]
name = "chat"
path = "examples/chat.rs"
[[example]]
name = "counter"
path = "examples/counter.rs"
[[example]]
name = "dashboard"
path = "examples/dashboard.rs"
[[example]]
name = "data_explorer"
path = "examples/data_explorer.rs"
[[example]]
name = "datetime_picker"
path = "examples/datetime_picker.rs"
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "drag_drop"
path = "examples/drag_drop.rs"
[[example]]
name = "form_validation"
path = "examples/form_validation.rs"
[[example]]
name = "gallery"
path = "examples/gallery.rs"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "ide"
path = "examples/ide.rs"
[[example]]
name = "new_widgets"
path = "examples/new_widgets.rs"
[[example]]
name = "plugins"
path = "examples/plugins.rs"
[[example]]
name = "reactive_form"
path = "examples/reactive_form.rs"
[[example]]
name = "slideshow"
path = "examples/slideshow.rs"
required-features = ["markdown"]
[[example]]
name = "status_indicator"
path = "examples/status_indicator.rs"
[[example]]
name = "store"
path = "examples/store.rs"
[[example]]
name = "tasks_usage"
path = "examples/tasks_usage.rs"
[[example]]
name = "test_helper_functions"
path = "examples/test_helper_functions.rs"
[[example]]
name = "text_editor"
path = "examples/text_editor.rs"
[[example]]
name = "theme_switcher"
path = "examples/theme_switcher.rs"
[[example]]
name = "todo"
path = "examples/todo.rs"
[[example]]
name = "version"
path = "examples/version.rs"
[[example]]
name = "worker_basic"
path = "examples/worker_basic.rs"
[[example]]
name = "worker_progress"
path = "examples/worker_progress.rs"
[[test]]
name = "a11y_tests"
path = "tests/a11y_tests.rs"
[[test]]
name = "boundary_tests"
path = "tests/boundary_tests.rs"
[[test]]
name = "buffer_tests"
path = "tests/buffer_tests.rs"
[[test]]
name = "canvas_tests"
path = "tests/canvas_tests.rs"
[[test]]
name = "code_editor_tests"
path = "tests/code_editor_tests.rs"
[[test]]
name = "color_tests"
path = "tests/color_tests.rs"
[[test]]
name = "data_viewer_tests"
path = "tests/data_viewer_tests.rs"
[[test]]
name = "event_tests"
path = "tests/event_tests.rs"
[[test]]
name = "image_tests"
path = "tests/image_tests.rs"
[[test]]
name = "layout_tests"
path = "tests/layout_tests.rs"
[[test]]
name = "log_viewer_tests"
path = "tests/log_viewer_tests.rs"
[[test]]
name = "masked_input_tests"
path = "tests/masked_input_tests.rs"
[[test]]
name = "numeric_conversion_tests"
path = "tests/numeric_conversion_tests.rs"
[[test]]
name = "option_list_tests"
path = "tests/option_list_tests.rs"
[[test]]
name = "pagination_tests"
path = "tests/pagination_tests.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[test]]
name = "reactive_edge_cases"
path = "tests/reactive_edge_cases.rs"
[[test]]
name = "reactive_tests"
path = "tests/reactive_tests.rs"
[[test]]
name = "render_context_css_tests"
path = "tests/render_context_css_tests.rs"
[[test]]
name = "render_context_progress_tests"
path = "tests/render_context_progress_tests.rs"
[[test]]
name = "render_tests"
path = "tests/render_tests.rs"
[[test]]
name = "rich_text_editor_tests"
path = "tests/rich_text_editor_tests.rs"
[[test]]
name = "shapes_tests"
path = "tests/shapes_tests.rs"
[[test]]
name = "sidebar_tests"
path = "tests/sidebar_tests.rs"
[[test]]
name = "splitter_tests"
path = "tests/splitter_tests.rs"
[[test]]
name = "stepper_tests"
path = "tests/stepper_tests.rs"
[[test]]
name = "streamline_tests"
path = "tests/streamline_tests.rs"
[[test]]
name = "style_tests"
path = "tests/style_tests.rs"
[[test]]
name = "text_tests"
path = "tests/text_tests.rs"
[[test]]
name = "textarea_bounds_tests"
path = "tests/textarea_bounds_tests.rs"
[[test]]
name = "textarea_undo_tests"
path = "tests/textarea_undo_tests.rs"
[[test]]
name = "theme_picker_tests"
path = "tests/theme_picker_tests.rs"
[[test]]
name = "timer_tests"
path = "tests/timer_tests.rs"
[[test]]
name = "transition_group_tests"
path = "tests/transition_group_tests.rs"
[[test]]
name = "transition_tests"
path = "tests/transition_tests.rs"
[[test]]
name = "transition_widget_tests"
path = "tests/transition_widget_tests.rs"
[[test]]
name = "widget_edge_cases"
path = "tests/widget_edge_cases.rs"
[[test]]
name = "widget_snapshots"
path = "tests/widget_snapshots.rs"
[[test]]
name = "widget_tests"
path = "tests/widget_tests.rs"
[[test]]
name = "worker_tests"
path = "tests/worker_tests.rs"
[[test]]
name = "zen_tests"
path = "tests/zen_tests.rs"
[[bench]]
name = "css"
path = "benches/css.rs"
harness = false
[[bench]]
name = "dom"
path = "benches/dom.rs"
harness = false
[[bench]]
name = "layout"
path = "benches/layout.rs"
harness = false
[[bench]]
name = "patterns"
path = "benches/patterns.rs"
harness = false
[[bench]]
name = "reactive_updates"
path = "benches/reactive_updates.rs"
[[bench]]
name = "render"
path = "benches/render.rs"
harness = false
[[bench]]
name = "utils"
path = "benches/utils.rs"
harness = false
[[bench]]
name = "widget"
path = "benches/widget.rs"
harness = false
[dependencies.arboard]
version = "3.4"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bitflags]
version = "2.6"
[dependencies.crossterm]
version = "0.29"
[dependencies.dirs]
version = "6.0"
optional = true
[dependencies.image]
version = "0.25"
optional = true
[dependencies.notify]
version = "8.2"
optional = true
[dependencies.pulldown-cmark]
version = "0.13"
optional = true
[dependencies.qrcode]
version = "0.14"
optional = true
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"blocking",
]
optional = true
[dependencies.revue-macros]
version = "2.45.0"
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.similar]
version = "2.6"
optional = true
[dependencies.sysinfo]
version = "0.38"
optional = true
[dependencies.textwrap]
version = "0.16"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"time",
"sync",
]
optional = true
[dependencies.toml]
version = "0.9"
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
optional = true
[dependencies.tree-sitter-bash]
version = "0.25"
optional = true
[dependencies.tree-sitter-css]
version = "0.25"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-highlight]
version = "0.26"
optional = true
[dependencies.tree-sitter-html]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-json]
version = "0.24"
optional = true
[dependencies.tree-sitter-md]
version = "0.5"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-sequel]
version = "0.3"
optional = true
[dependencies.tree-sitter-toml-ng]
version = "0.7"
optional = true
[dependencies.tree-sitter-yaml]
version = "0.7"
optional = true
[dependencies.unic-emoji-char]
version = "0.9"
[dependencies.unicode-segmentation]
version = "1.10"
[dependencies.unicode-width]
version = "0.2"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1.34"
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.serial_test]
version = "3.1"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true
[profile.release-debug]
debug = 2
inherits = "release"
strip = false
[profile.release-min-size]
opt-level = "z"
inherits = "release"
strip = true