[package]
name = "ironflow-core"
version = "1.3.1"
edition = "2024"
rust-version = "1.94"
authors = ["Thomas Tartrau"]
license = "MIT"
description = "Rust workflow engine with Claude Code native agent support"
repository = "https://gitlab.com/ThomasTartrau/ironflow"
keywords = ["workflow", "agent", "claude", "shell", "automation"]
categories = ["asynchronous", "development-tools"]

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
schemars = "1"
tokio = { version = "1", features = ["process", "time", "macros", "rt-multi-thread", "signal"] }
reqwest = { version = "0.13", features = ["json"] }
url = "2"
sha2 = "0.10"
thiserror = "2"
tracing = "0.1"
futures-util = "0.3"
metrics = { version = "0.24", optional = true }

# Transport: SSH
russh = { version = "0.58", optional = true }

# Transport: Docker
bollard = { version = "0.20", optional = true }

# Transport: Kubernetes
kube = { version = "3.1", features = ["client", "runtime", "ws", "rustls-tls", "aws-lc-rs"], default-features = false, optional = true }
k8s-openapi = { version = "0.27", features = ["latest"], optional = true }
tokio-util = { version = "0.7", features = ["io"], optional = true }

[features]
default = []
prometheus = ["metrics"]
transport-ssh = ["russh"]
transport-docker = ["bollard"]
transport-k8s = ["kube", "k8s-openapi", "tokio-util"]

[dev-dependencies]
tokio = { version = "1", features = ["full"] }
tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] }

