[workspace]
[package]
name = "rustchain"
version = "0.1.0"
edition = "2021"
description = "Workflow transpilation and execution framework - import LangChain, Airflow, GitHub Actions, and more"
authors = ["RustChain Team <team@rustchain.dev>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Michael-A-Kuykendall/rustchain"
homepage = "https://rustchain.dev"
documentation = "https://docs.rs/rustchain"
readme = "README.md"
keywords = ["ai", "agents", "automation", "llm", "safety"]
categories = ["development-tools", "web-programming::http-server", "command-line-utilities"]
rust-version = "1.70"
[lib]
name = "rustchain"
path = "src/lib.rs"
[[bin]]
name = "rustchain"
path = "src/main.rs"
required-features = ["cli"]
[[bin]]
name = "rustchain-benchmark"
path = "benchmarks/langchain_comparison/rustchain_benchmark.rs"
[[bin]]
name = "rustchain-benchmark-v2"
path = "benchmarks/langchain_comparison/rustchain_benchmark_v2.rs"
required-features = ["llm"]
[features]
default = ["cli", "transpiler", "tools"]
proptest = ["dep:proptest"]
ppt = []
full = []
llm = ["dep:reqwest"]
tools = ["dep:reqwest"]
rag = ["dep:qdrant-client", "dep:reqwest"]
smt = ["dep:reqwest"]
transpiler = ["dep:regex"]
cli = ["dep:clap"]
sandbox = []
server = ["dep:axum", "dep:tower", "dep:tower-http"]
registry = ["dep:reqwest"]
enterprise = ["dep:jsonwebtoken", "registry"]
redis = ["dep:redis"]
openssh = ["dep:openssh"]
tokio-tungstenite = ["dep:tokio-tungstenite"]
[dependencies]
tokio = { version = "1.38", features = ["macros", "rt-multi-thread", "time", "fs", "process", "sync", "io-util"] }
clap = { version = "4.4", features = ["derive"], optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
scraper = "0.20"
toml = "0.8"
schemars = { version = "0.8", features = ["chrono", "uuid"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3.20", features = ["json", "env-filter"] }
thiserror = "1.0"
anyhow = "1.0"
once_cell = "1.19"
uuid = { version = "1.6", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
csv = "1.3"
xml-rs = "0.8"
zip = "0.6"
tar = "0.4"
walkdir = "2.4"
async-trait = "0.1"
futures = "0.3"
rayon = "1.10"
num_cpus = "1.16"
reqwest = { version = "0.11", features = ["json", "stream", "multipart", "blocking"], optional = true }
axum = { version = "0.7", features = ["ws"], optional = true }
tower = { version = "0.4", features = ["timeout", "limit"], optional = true }
tower-http = { version = "0.5", features = ["cors", "trace"], optional = true }
sha2 = "0.10"
aes-gcm = "0.10"
pbkdf2 = "0.12"
jsonwebtoken = { version = "9.3", optional = true }
glob = "0.3"
regex = { version = "1.10", optional = true }
hex = "0.4"
base64 = "0.22"
is-terminal = "0.4"
urlencoding = "2.1"
tempfile = "3.0"
sysinfo = "0.30"
tokio-tungstenite = { version = "0.21", optional = true }
qdrant-client = { version = "1.7", optional = true }
redis = { version = "0.32", optional = true }
[dev-dependencies]
tokio-test = "0.4"
tempfile = "3.0"
tower = "0.4"
axum-test = "14.0"
assert_cmd = "2.0"
predicates = "3.0"
proptest = "1.4"
[dependencies.proptest]
version = "1.4"
optional = true
[target.'cfg(unix)'.dependencies]
openssh = { version = "0.10", optional = true }