brush-shell 0.3.0

Rust-implemented shell focused on POSIX and bash compatibility
Documentation
[[bench]]
harness = false
name = "shell"
path = "benches/shell.rs"

[[bin]]
bench = false
name = "brush"
path = "src/main.rs"

[dependencies.brush-builtins]
version = "^0.1.0"

[dependencies.brush-core]
version = "^0.4.0"

[dependencies.clap]
features = ["derive", "env"]
version = "4.5.51"

[dependencies.color-print]
version = "0.3.7"

[dependencies.const_format]
version = "0.2.35"

[dependencies.git-version]
version = "0.3.9"

[dependencies.human-panic]
version = "2.0.4"

[dependencies.tracing]
version = "0.1.41"

[dependencies.tracing-subscriber]
version = "0.3.20"

[dev-dependencies.anyhow]
version = "1.0.100"

[dev-dependencies.assert_cmd]
version = "2.1.1"

[dev-dependencies.assert_fs]
version = "1.1.3"

[dev-dependencies.brush-parser]
version = "^0.3.0"

[dev-dependencies.colored]
version = "3.0.0"

[dev-dependencies.criterion]
features = ["async_tokio", "html_reports"]
version = "0.5.1"

[dev-dependencies.descape]
version = "3.0.0"

[dev-dependencies.diff]
version = "0.1.13"

[dev-dependencies.glob]
version = "0.3.3"

[dev-dependencies.indent]
version = "0.1.1"

[dev-dependencies.junit-report]
version = "0.8.3"

[dev-dependencies.predicates]
version = "3.1.3"

[dev-dependencies.pretty_assertions]
features = ["unstable"]
version = "1.4.1"

[dev-dependencies.regex]
version = "1.12.2"

[dev-dependencies.serde]
features = ["derive"]
version = "1.0.228"

[dev-dependencies.serde_yaml]
version = "0.9.34"

[dev-dependencies.strip-ansi-escapes]
version = "0.2.1"

[dev-dependencies.test-with]
default-features = false
features = ["executable"]
version = "0.15.3"

[dev-dependencies.version-compare]
version = "0.2.1"

[dev-dependencies.walkdir]
version = "2.5.0"

[features]
basic = ["brush-interactive/basic"]
default = ["basic", "reedline", "minimal"]
minimal = ["brush-interactive/minimal"]
reedline = ["brush-interactive/reedline"]

[lib]
bench = false
name = "brush_shell"
path = "src/lib.rs"

[lints.clippy]
bool_to_int_with_if = "allow"
cognitive_complexity = "allow"
collapsible_else_if = "allow"
collapsible_if = "allow"
expect_used = "deny"
format_push_string = "deny"
if_not_else = "allow"
if_same_then_else = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
multiple_crate_versions = "allow"
must_use_candidate = "allow"
option_if_let_else = "allow"
panic = "deny"
panic_in_result_fn = "deny"
redundant_closure_for_method_calls = "allow"
redundant_else = "allow"
redundant_pub_crate = "allow"
result_large_err = "allow"
similar_names = "allow"
string_slice = "deny"
struct_excessive_bools = "allow"
todo = "deny"
undocumented_unsafe_blocks = "deny"
unwrap_in_result = "deny"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.clippy.cargo]
level = "deny"
priority = -1

[lints.clippy.nursery]
level = "deny"
priority = -1

[lints.clippy.pedantic]
level = "deny"
priority = -1

[lints.clippy.perf]
level = "deny"
priority = -1

[lints.rust]
unnameable_types = "deny"
unsafe_op_in_unsafe_fn = "deny"
unused_attributes = "deny"
unused_lifetimes = "deny"
unused_macro_rules = "deny"

[lints.rust.future_incompatible]
level = "deny"
priority = 0

[lints.rust.missing_docs]
level = "deny"
priority = 0

[lints.rust.nonstandard_style]
level = "deny"
priority = 0

[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1

[lints.rust.unknown_lints]
level = "allow"
priority = -100

[lints.rust.warnings]
level = "deny"
priority = 0

[lints.rustdoc.all]
level = "deny"
priority = -1

[package]
authors = ["reuben olinsky"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["command-line-utilities", "development-tools"]
description = "Rust-implemented shell focused on POSIX and bash compatibility"
edition = "2024"
keywords = ["cli", "shell", "sh", "bash", "script"]
license = "MIT"
name = "brush-shell"
readme = "README.md"
repository = "https://github.com/reubeno/brush"
rust-version = "1.87.0"
version = "0.3.0"

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/brush-{ target }{ archive-suffix }"

[target."cfg(any(unix, windows))".dependencies.brush-interactive]
features = ["basic", "reedline"]
version = "^0.3.0"

[target."cfg(any(unix, windows))".dependencies.crossterm]
version = "0.29.0"

[target."cfg(any(unix, windows))".dependencies.tokio]
features = ["rt", "rt-multi-thread", "sync"]
version = "1.48.0"

[target."cfg(not(any(unix, windows)))".dependencies.brush-interactive]
features = ["minimal"]
version = "^0.3.0"

[target."cfg(not(any(unix, windows)))".dependencies.tokio]
features = ["rt", "sync"]
version = "1.48.0"

[target."cfg(unix)".dev-dependencies.pprof]
features = ["criterion", "flamegraph"]
version = "0.15.0"

[target.wasm32-unknown-unknown.dependencies.getrandom]
features = ["wasm_js"]
version = "0.3.4"

[target.wasm32-unknown-unknown.dependencies.uuid]
features = ["js"]
version = "1.18.1"

[[test]]
harness = false
name = "brush-compat-tests"
path = "tests/compat_tests.rs"

[[test]]
name = "brush-completion-tests"
path = "tests/completion_tests.rs"

[[test]]
name = "brush-interactive-tests"
path = "tests/interactive_tests.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"