kodegen_bash_shell 0.5.1

Embeddable POSIX/bash shell with cancellation support. Fork of brush-shell.
Documentation
[package]
name = "kodegen_bash_shell"
version = "0.5.1"
edition = "2024"
description = "Embeddable POSIX/bash shell with cancellation support. Fork of brush-shell."
license = "Apache-2.0 OR MIT"
authors = ["KODEGEN.AI", "Reuben Olinsky <original brush-shell author>"]
homepage = "https://kodegen.ai"
repository = "https://github.com/cyrup-ai/kodegen-bash-shell"
readme = "README.md"
categories = ["command-line-utilities", "development-tools"]
keywords = ["shell", "bash", "posix", "terminal", "brush"]

[features]
default = [
    # Interactive shell backends
    "reedline",
    "basic",
    "minimal",
    # Builtins
    "builtin.alias",
    "builtin.bg",
    "builtin.bind",
    "builtin.break",
    "builtin.brushinfo",
    "builtin.builtin",
    "builtin.cd",
    "builtin.colon",
    "builtin.command",
    "builtin.compgen",
    "builtin.compopt",
    "builtin.complete",
    "builtin.continue",
    "builtin.declare",
    "builtin.dirs",
    "builtin.dot",
    "builtin.echo",
    "builtin.enable",
    "builtin.eval",
    "builtin.exec",
    "builtin.exit",
    "builtin.export",
    "builtin.false",
    "builtin.fc",
    "builtin.fg",
    "builtin.getopts",
    "builtin.hash",
    "builtin.help",
    "builtin.history",
    "builtin.jobs",
    "builtin.kill",
    "builtin.let",
    "builtin.mapfile",
    "builtin.popd",
    "builtin.printf",
    "builtin.pushd",
    "builtin.pwd",
    "builtin.read",
    "builtin.return",
    "builtin.set",
    "builtin.shift",
    "builtin.shopt",
    "builtin.suspend",
    "builtin.test",
    "builtin.times",
    "builtin.trap",
    "builtin.true",
    "builtin.type",
    "builtin.ulimit",
    "builtin.umask",
    "builtin.unalias",
    "builtin.unset",
    "builtin.wait",
]

# Parser features
fuzz-testing = ["dep:arbitrary"]
debug-tracing = ["peg/trace"]
diagnostics = ["dep:miette"]

# Interactive shell features
reedline = ["completion"]
basic = ["completion"]
minimal = []
completion = []

# Builtin features
"builtin.alias" = []
"builtin.bg" = []
"builtin.bind" = []
"builtin.break" = []
"builtin.brushinfo" = []
"builtin.builtin" = []
"builtin.cd" = []
"builtin.colon" = []
"builtin.command" = []
"builtin.compgen" = []
"builtin.complete" = []
"builtin.compopt" = []
"builtin.continue" = []
"builtin.declare" = []
"builtin.dirs" = []
"builtin.dot" = []
"builtin.echo" = []
"builtin.enable" = []
"builtin.eval" = []
"builtin.exec" = []
"builtin.exit" = []
"builtin.export" = []
"builtin.false" = []
"builtin.fc" = []
"builtin.fg" = []
"builtin.getopts" = []
"builtin.hash" = []
"builtin.help" = []
"builtin.history" = []
"builtin.jobs" = []
"builtin.kill" = []
"builtin.let" = []
"builtin.mapfile" = []
"builtin.popd" = []
"builtin.printf" = []
"builtin.pushd" = []
"builtin.pwd" = []
"builtin.read" = []
"builtin.return" = []
"builtin.set" = []
"builtin.shift" = []
"builtin.shopt" = []
"builtin.suspend" = []
"builtin.test" = []
"builtin.times" = []
"builtin.trap" = []
"builtin.true" = []
"builtin.type" = []
"builtin.ulimit" = []
"builtin.umask" = []
"builtin.unalias" = []
"builtin.unset" = []
"builtin.wait" = []

[dependencies]
# From brush-parser
arbitrary = { version = "1.4.2", optional = true, features = ["derive"] }
indenter = "0.3.4"
miette = { version = "7.6.0", optional = true, default-features = false, features = ["derive"] }
peg = "0.8.5"
utf8-chars = "3.0.6"

# From brush-core
async-recursion = "1.1.1"
async-trait = "0.1.89"
bon = "3.8.1"
cached = "0.56.0"
cfg-if = "1.0.4"
chrono = "0.4.42"
clap = { version = "4.5.53", features = ["derive", "wrap_help", "env"] }
fancy-regex = "0.16.2"
futures = "0.3.31"
indexmap = "2.12.1"
itertools = "0.14.0"
normalize-path = "0.2.1"
rand = "0.9.2"
rpds = "1.2.0"
strum = "0.27.2"
strum_macros = "0.27.2"
thiserror = "2.0.17"
tracing = "0.1.43"

# From brush-shell
color-print = "0.3.7"
const_format = "0.2.35"
git-version = "0.3.9"
tracing-subscriber = "0.3.22"
human-panic = "2.0.4"

# From brush-interactive
reedline = "0.44.0"
nu-ansi-term = "0.50.3"

# For cancellation token support
tokio-util = "0.7"

# For streaming execution
tokio-stream = "0.1"

[target.'cfg(target_family = "wasm")'.dependencies]
tokio = { version = "1.48.0", features = ["io-util", "macros", "rt", "sync"] }

[target.'cfg(any(unix, windows))'.dependencies]
hostname = "0.4.2"
tokio = { version = "1.48", features = [
    "io-util",
    "macros",
    "process",
    "rt",
    "rt-multi-thread",
    "signal",
    "sync",
] }
uucore = { version = "0.4.0", default-features = false, features = ["format"] }
crossterm = "0.29.0"

[target.'cfg(windows)'.dependencies]
homedir = "=0.3.6"
whoami = "1.6.1"

[target.'cfg(unix)'.dependencies]
command-fds = "0.3.2"
nix = { version = "0.30.1", features = [
    "fs",
    "process",
    "resource",
    "signal",
    "term",
    "user",
] }
terminfo = "0.9.0"
uzers = "0.12.1"
rlimit = "0.10.2"

[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18.0"

[target.wasm32-unknown-unknown.dependencies]
getrandom = { version = "0.3.4", features = ["wasm_js"] }
uuid = { version = "1.19.0", features = ["js"] }

[dev-dependencies]
anyhow = "1.0.100"
insta = { version = "1.44", features = ["glob", "ron"] }
pretty_assertions = { version = "1.4.1", features = ["unstable"] }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_yaml = "0.9"