[package]
name = "bashrs"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description.workspace = true
readme.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
[lints]
workspace = true
[[bin]]
name = "bashrs"
path = "src/bin/bashrs.rs"
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
syn.workspace = true
quote.workspace = true
proc-macro2.workspace = true
serde.workspace = true
serde_json.workspace = true
toml = "0.8"
anyhow.workspace = true
thiserror.workspace = true
clap = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }
tracing.workspace = true
tracing-subscriber = { workspace = true, optional = true }
blake3.workspace = true
once_cell.workspace = true
lazy_static.workspace = true
phf.workspace = true
chrono = { version = "0.4", features = ["serde"] }
rand = "0.9"
static_assertions = "1.1"
regex = "1.10"
glob = "0.3"
rustyline.workspace = true
sysinfo = "0.31"
schemars = "0.8"
bashrs-oracle = { version = "6.58", optional = true }
zstd = { version = "0.13", optional = true }
tar = { version = "0.4", optional = true }
flate2 = { version = "1.1", optional = true }
base64 = { version = "0.22", optional = true }
ratatui = { version = "0.29", default-features = false, features = ["crossterm"], optional = true }
crossterm = { version = "0.28", optional = true }
[features]
default = ["validation", "pretty-errors", "basic", "compile", "clap", "tokio", "tracing-subscriber"]
minimal = []
full = ["pattern-matching", "loops", "verification", "optimization", "lsp", "completions", "watch", "compile", "clap", "tokio", "tracing-subscriber"]
basic = []
compile = ["tokio", "zstd", "tar", "flate2", "base64"]
pattern-matching = []
loops = []
verification = []
optimization = []
validation = []
pretty-errors = []
lsp = []
completions = []
watch = []
oracle = ["bashrs-oracle"]
tui = ["ratatui", "crossterm"]
[dev-dependencies]
tempfile.workspace = true
criterion.workspace = true
proptest.workspace = true
rstest.workspace = true
assert_cmd = "2.1"
predicates = "3.1"
verificar = "0.5"
jugar-probar = "1.0"
[target.'cfg(target_os = "linux")'.dev-dependencies]
renacer = "0.7"
[[bench]]
name = "transpilation"
harness = false
[[bench]]
name = "verification"
harness = false
[[bench]]
name = "make_parsing_bench"
harness = false
[[bench]]
name = "make_purify_bench"
harness = false
[[bench]]
name = "fix_safety_bench"
harness = false
[[bench]]
name = "makefile_benchmarks"
harness = false
[[bench]]
name = "tracing_overhead"
harness = false
[[bench]]
name = "lint_performance"
harness = false
[[bench]]
name = "bash_purification_benchmarks"
harness = false