bashrs 6.64.0

Rust-to-Shell transpiler for deterministic bootstrap scripts
Documentation
[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"  # For formatter configuration
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"  # Added for testing module
static_assertions = "1.1"
regex = "1.10"  # For linter pattern matching
glob = "0.3"    # For .bashrsignore pattern matching (Issue #58)
rustyline.workspace = true  # REPL terminal line editing
sysinfo = "0.31"  # For bench command - CPU/RAM/OS detection
schemars = "0.8"  # For JSON schema generation (Issue #12)
bashrs-oracle = { version = "6.58", optional = true }  # ML-powered error classification

# Compile mode dependencies (optional - not needed for WASM)
zstd = { version = "0.13", optional = true }
tar = { version = "0.4", optional = true }
flate2 = { version = "1.1", optional = true }
base64 = { version = "0.22", optional = true }

# TUI dependencies (re-enabled for bashrs tui command)
ratatui = { version = "0.29", default-features = false, features = ["crossterm"], optional = true }
crossterm = { version = "0.28", optional = true }

# Optional dependencies for feature gates (commented out for now)
# z3 = { version = "0.12", optional = true }
# mutagen = { version = "0.2", optional = true }
# libfuzzer-sys = { version = "0.4", optional = true }

# WASM support removed - use probar/simular/jugar instead

[features]
# Default includes core features for full functionality
default = ["validation", "pretty-errors", "basic", "compile", "clap", "tokio", "tracing-subscriber"]
# Minimal build for smallest binary size (<3MB)
minimal = []
# Full build with all features (~6MB)
full = ["pattern-matching", "loops", "verification", "optimization", "lsp", "completions", "watch", "compile", "clap", "tokio", "tracing-subscriber"]
# Individual features
basic = []
compile = ["tokio", "zstd", "tar", "flate2", "base64"]  # Binary compilation and self-extracting scripts
pattern-matching = []
loops = []
verification = []  # ["z3"] when available
optimization = []
validation = []
pretty-errors = []
lsp = []
completions = []
watch = []
oracle = ["bashrs-oracle"]  # ML-powered error classification and fix suggestions
tui = ["ratatui", "crossterm"]  # Terminal UI with multi-panel layout
# wasm feature removed - use probar/simular/jugar for browser testing
# playground = ["ratatui", "ropey", "tree-sitter", "tree-sitter-rust", "crossbeam", "dashmap", "petgraph", "rayon", "brotli", "simdutf8", "bit-vec", "lru"]  # Removed from v1.0 - move to separate crate
# mutation-testing = ["mutagen"] when available
# fuzzing = ["libfuzzer-sys"] when available

[dev-dependencies]
tempfile.workspace = true
criterion.workspace = true
proptest.workspace = true
rstest.workspace = true
assert_cmd = "2.1"
predicates = "3.1"
# renacer is Linux-only (uses ptrace syscalls); gracefully excluded on macOS/Windows
# renacer = "0.7"  # Golden trace integration - syscall tracing for regression detection
verificar = "0.5"  # Synthetic bash program generation for comprehensive testing
jugar-probar = "1.0"  # TUI/GUI testing framework with coverage tracking

# Linux-only dev-dependencies (ptrace/syscall tracing)
[target.'cfg(target_os = "linux")'.dev-dependencies]
renacer = "0.7"  # Golden trace integration - syscall tracing for regression detection

[[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

# Note: The actual Rash examples are in the examples/ directory
# They are written in Rash syntax and must be transpiled, not compiled
# See examples/README.md for usage instructions

# wasm-pack metadata removed - WASM support moved to probar/simular/jugar