[package]
name = "offload"
version = "0.9.6"
edition = "2024"
description = "Flexible parallel test runner with pluggable cloud providers"
license = "MIT"
authors = ["Imbue"]
repository = "https://github.com/imbue-ai/offload"
homepage = "https://github.com/imbue-ai/offload"
readme = "README.md"
keywords = ["testing", "parallel", "runner", "sandbox", "ci"]
categories = ["development-tools::testing"]

include = [
  "src/**/*.rs",
  "scripts/*.py",
  "LICENSE",
  "README.md",
  "Cargo.toml",
]

[[bin]]
name = "offload"
path = "src/main.rs"

[lib]
name = "offload"
path = "src/lib.rs"

[dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-scoped = "0.2"
tokio-util = "0.7"
async-trait = "0.1"
futures = "0.3"

# Serialization & Config
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"

# CLI
clap = { version = "4", features = ["derive"] }

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Error handling
anyhow = "1"
thiserror = "2"

# Reporting
quick-xml = { version = "0.37", features = ["serialize"] }

# Terminal UI
indicatif = "0.17"
console = "0.15"

# Retry
backon = "1"

# Random number generation
rand = "0.9"

# Patch application
diffy = { version = "0.5", features = ["binary"] }

# Utilities
uuid = { version = "1", features = ["v4"] }
tempfile = "3"
shell-words = "1"
regex = "1"
tokio-stream = { version = "0.1", features = ["io-util"] }
include_dir = "0.7.4"

[dev-dependencies]
tokio-test = "0.4"
assert_cmd = "2"
predicates = "3"
