[package] name = "brush-core" description = "Reusable core of a POSIX/bash shell (used by brush-shell)" version = "0.2.12" categories.workspace = true edition.workspace = true keywords.workspace = true license.workspace = true readme.workspace = true repository.workspace = true rust-version.workspace = true [lib] bench = false [lints] workspace = true [dependencies] async-recursion = "1.1.1" async-trait = "0.1.83" brush-parser = { version = "^0.2.10", path = "../brush-parser" } cached = "0.53.1" cfg-if = "1.0.0" clap = { version = "4.5.20", features = ["derive", "wrap_help"] } fancy-regex = "0.14.0" futures = "0.3.31" indexmap = "2.6.0" itertools = "0.13.0" lazy_static = "1.5.0" rand = "0.8.5" thiserror = "1.0.65" tracing = "0.1.40" [target.'cfg(target_family = "wasm")'.dependencies] tokio = { version = "1.41.0", features = ["io-util", "macros", "rt"] } [target.'cfg(any(windows, unix))'.dependencies] hostname = "0.4.0" os_pipe = { version = "1.2.1", features = ["io_safety"] } tokio = { version = "1.41.0", features = [ "io-util", "macros", "process", "rt", "rt-multi-thread", "signal", ] } [target.'cfg(windows)'.dependencies] homedir = "0.3.4" whoami = "1.5.2" [target.'cfg(unix)'.dependencies] command-fds = "0.3.0" nix = { version = "0.29.0", features = [ "fs", "process", "signal", "term", "user", ] } uzers = "0.12.1" [target.'cfg(target_os = "linux")'.dependencies] procfs = "0.17.0" [dev-dependencies] anyhow = "1.0.91" criterion = { version = "0.5.1", features = ["async_tokio", "html_reports"] } [target.'cfg(unix)'.dev-dependencies] pprof = { version = "0.13.0", features = ["criterion", "flamegraph"] } [[bench]] name = "shell" harness = false