[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]
tokio = { workspace = true }
async-trait = { workspace = true }
futures-core = { workspace = true }
futures-util = { workspace = true }
tower = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
schemars = { workspace = true }
regex = { workspace = true }
fancy-regex = { workspace = true }
chrono = { workspace = true }
reqwest = { workspace = true, optional = true }
rustls = { workspace = true, optional = true }
russh = { workspace = true, optional = true }
fail = { workspace = true, optional = true }
url = "2"
jaq-core = { workspace = true, optional = true }
jaq-std = { workspace = true, optional = true }
jaq-json = { workspace = true, optional = true }
flate2 = { workspace = true }
base64 = { workspace = true }
ed25519-dalek = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
zeroize = { workspace = true, optional = true }
md-5 = { workspace = true }
sha1 = { workspace = true }
sha2 = { workspace = true }
hmac = "0.13"
tracing = { workspace = true, optional = true }
clap = { workspace = true, optional = true }
zapcode-core = { version = "1.5", optional = true }
turso_core = { workspace = true, optional = true }
[features]
default = ["clap-builtins"]
clap-builtins = ["dep:clap"]
jq = ["dep:jaq-core", "dep:jaq-std", "dep:jaq-json"]
http_client = ["reqwest", "rustls"]
bot-auth = ["http_client", "dep:ed25519-dalek", "dep:rand", "dep:zeroize"]
failpoints = ["fail/failpoints"]
logging = ["tracing"]
git = []
ssh = ["russh"]
scripted_tool = []
typescript = ["dep:zapcode-core"]
sqlite = ["dep:turso_core", "tokio/rt-multi-thread"]
realfs = []
interop = ["tokio/rt-multi-thread"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dev-dependencies]
tokio-test = { workspace = true }
pretty_assertions = { workspace = true }
insta = { workspace = true }
criterion = { version = "0.8", features = ["async_tokio"] }
proptest = { workspace = true }
tempfile = "3"
serial_test = { workspace = true }
[[bench]]
name = "parallel_execution"
harness = false
[[bench]]
name = "sqlite"
harness = false
required-features = ["sqlite"]
[[example]]
name = "agent_tool"
required-features = ["http_client"]
[[example]]
name = "git_workflow"
required-features = ["git"]
[[example]]
name = "ssh_supabase"
required-features = ["ssh"]
[[example]]
name = "scripted_tool"
required-features = ["scripted_tool"]
[[example]]
name = "typescript_scripts"
required-features = ["typescript"]
[[example]]
name = "typescript_external_functions"
required-features = ["typescript"]
[[example]]
name = "realfs_readonly"
required-features = ["realfs"]
[[example]]
name = "realfs_readwrite"
required-features = ["realfs"]
[[example]]
name = "sqlite_basic"
required-features = ["sqlite"]
[[example]]
name = "sqlite_workflow"
required-features = ["sqlite"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "fs"] }