bashkit 0.1.4

Sandboxed bash interpreter for multi-tenant environments
Documentation
# Bashkit core library
# Sandboxed bash interpreter for multi-tenant environments

[package]
name = "bashkit"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../../README.md"

[dependencies]
# Async runtime
tokio = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }

# Error handling
thiserror = { workspace = true }
anyhow = { workspace = true }

# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
schemars = { workspace = true }

# Regex
regex = { workspace = true }

# Glob matching
globset = { workspace = true }

# Date/Time
chrono = { workspace = true }

# HTTP client (for curl/wget) - optional, enabled with http_client feature
reqwest = { workspace = true, optional = true }

# Fault injection for testing (optional)
fail = { workspace = true, optional = true }

# URL parsing
url = "2"

# JSON processing (jq)
jaq-core = { workspace = true }
jaq-std = { workspace = true }
jaq-json = { workspace = true }

# Compression (for gzip/gunzip)
flate2 = { workspace = true }

# Base64 encoding (for HTTP basic auth)
base64 = { workspace = true, optional = true }

# Logging/tracing (optional)
tracing = { workspace = true, optional = true }
[features]
default = []
http_client = ["reqwest", "base64"]
# Enable fail points for security/fault injection testing
# Usage: FAILPOINTS="fail_point_name=action" cargo test --features failpoints
failpoints = ["fail/failpoints"]
# Enable structured logging via tracing crate
# Usage: cargo build --features logging
logging = ["tracing"]
# Enable git builtin for sandboxed git operations
# Phase 1: Local operations (init, config, add, commit, status, log)
# Phase 2 will add gix dependency for remote operations
# Usage: cargo build --features git
git = []
# Enable python/python3 builtins via embedded Monty interpreter
# Requires monty git dependency (not on crates.io) — feature unavailable from registry
# To use locally: uncomment and add monty dep
# python = ["dep:monty"]

[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = ['cfg(feature, values("python"))']

[dev-dependencies]
tokio-test = { workspace = true }
pretty_assertions = { workspace = true }
insta = { workspace = true }
criterion = { version = "0.8", features = ["async_tokio"] }
proptest = { workspace = true }
serial_test = { workspace = true }

[[bench]]
name = "parallel_execution"
harness = false

[[example]]
name = "agent_tool"
required-features = ["http_client"]

[[example]]
name = "git_workflow"
required-features = ["git"]

[[example]]
name = "python_scripts"
required-features = ["python"]