2025-10-07 10:59:52 +01:00

88 lines
2.3 KiB
TOML

[package]
name = "provisioning-orchestrator"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "Cloud-native infrastructure orchestrator with Nushell integration"
[dependencies]
# ============================================================================
# WORKSPACE DEPENDENCIES - Core async runtime and traits
# ============================================================================
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "process", "io-util", "time", "fs"] }
futures = { workspace = true }
async-trait = { workspace = true }
# Serialization and data handling
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }
# Graph algorithms (for dependency resolution)
petgraph = { workspace = true }
# Logging framework (used throughout)
tracing = { workspace = true }
# Web server and API
axum = { workspace = true }
tower = { workspace = true, features = ["util"] }
tower-http = { workspace = true, features = ["cors", "trace"] }
hyper = { workspace = true }
# CLI interface
clap = { workspace = true }
# Logging configuration and output (binary-only)
tracing-subscriber = { workspace = true }
tracing-appender = { workspace = true }
# Docker/Container management
bollard = "0.17"
# HTTP client for DNS/OCI/services
reqwest = { workspace = true }
# LRU cache for OCI manifests
lru = "0.12"
# ============================================================================
# FEATURE-GATED OPTIONAL DEPENDENCIES
# ============================================================================
# SurrealDB storage backend (optional)
surrealdb = { workspace = true, optional = true }
[features]
default = []
surrealdb = ["dep:surrealdb"]
[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
assert_matches = { workspace = true }
criterion = { workspace = true, features = ["html_reports", "async_tokio"] }
# Library target for tests and external use
[lib]
name = "provisioning_orchestrator"
path = "src/lib.rs"
# Binary target
[[bin]]
name = "provisioning-orchestrator"
path = "src/main.rs"
[[bench]]
name = "storage_benchmarks"
harness = false
[[bench]]
name = "migration_benchmarks"
harness = false