provisioning-platform/daemon-cli/Cargo.toml

177 lines
4.3 KiB
TOML
Raw Permalink Normal View History

[workspace]
# Independent package - not part of any workspace
[package]
name = "daemon-cli"
version = "0.1.0"
edition = "2021"
authors = ["Akasha Development Team"]
license = "MIT"
repository = "https://github.com/provenance-io/prov-ecosystem"
description = "Unified daemon and CLI for orchestrating prov-ecosystem services"
[dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-util = "0.7"
# HTTP server and networking
axum = "0.8"
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
hyper = "1.8"
reqwest = { version = "0.12", features = ["json"] }
http = "1.4"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1.0"
toml = "0.9"
# Error handling
thiserror = "2"
anyhow = "1"
# Logging and tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# CLI
clap = { version = "4.5", features = ["derive"] }
# Utilities
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
which = "8"
async-trait = "0.1"
lru = "0.16"
parking_lot = "0.12"
sha2 = "0.10"
config = "0.15"
notify = "8.2"
# Template rendering
tera = "1.20"
# i18n
fluent = "0.17"
fluent-bundle = "0.16"
fluent-syntax = "0.12"
unic-langid = "0.9"
# Event bus
async-broadcast = "0.7"
# Database / persistence (optional)
sqlx = { version = "0.8.6", features = ["runtime-tokio-rustls", "sqlite"], optional = true }
# Nushell integration (optional)
nu-engine = { version = "0.109", optional = true }
nu-protocol = { version = "0.109", optional = true }
nu-parser = { version = "0.109", optional = true }
nu-command = { version = "0.109", optional = true }
nu-system = { version = "0.109", optional = true }
# Configuration language support (CLI wrappers - no pure Rust deps needed)
# KCL and Nickel renderers delegate to official CLI binaries (kcl/nickel)
# This follows the same pattern as nushell plugins for module system support
# Ecosystem crate dependencies
valida = { path = "../valida", optional = true }
encrypt = { path = "../encrypt", optional = true }
runtime = { path = "../runtime", optional = true }
init-servs = { path = "../init-servs", optional = true }
observability = { path = "../observability", optional = true }
syntaxis-integration = { path = "../syntaxis-integration", optional = true }
[dev-dependencies]
criterion = "0.8"
tokio-test = "0.4"
tempfile = "3"
mockall = "0.14"
[features]
# Nushell integration - enables all Nushell execution capabilities
nushell = ["dep:nu-engine", "dep:nu-protocol", "dep:nu-parser", "dep:nu-command", "dep:nu-system"]
# Persistent Nushell process executor for <5ms overhead
nushell-persistent = ["nushell"]
# Subprocess-based Nushell executor (fallback)
nushell-subprocess = ["nushell"]
# Configuration rendering
# KCL and Nickel are enabled by feature flags but don't require optional dependencies
# Renderers delegate to official CLI binaries (must be installed on system)
kcl = []
nickel = []
tera-default = []
fluent-default = []
# Individual crate features - with dep: prefix for optional dependencies
valida = ["dep:valida"]
encrypt = ["dep:encrypt"]
runtime = ["dep:runtime"]
init-servs = ["dep:init-servs"]
observability = ["dep:observability"]
syntaxis = ["dep:syntaxis-integration"]
audit = []
backup = []
gitops = []
n8n = []
virtualization = []
# Composite crates
basic-crates = ["valida", "runtime", "encrypt"]
extended-crates = ["init-servs", "observability"]
# Event persistence
event-persistence = ["sqlx"]
# Default features (includes config rendering support)
default = ["nushell-persistent", "kcl", "nickel", "tera-default", "fluent-default", "basic-crates", "syntaxis"]
# Full feature set
full = [
"nushell",
"nushell-persistent",
"kcl",
"nickel",
"tera-default",
"fluent-default",
"basic-crates",
"extended-crates",
"valida",
"encrypt",
"runtime",
"init-servs",
"observability",
"syntaxis",
"event-persistence",
]
[[bin]]
name = "prov-eco-daemon"
path = "src/bin/prov-eco-daemon.rs"
[[bin]]
name = "prov-eco-cli"
path = "src/bin/prov-eco-cli.rs"
[[bin]]
name = "provisioning-daemon-cli"
path = "src/bin/provisioning_daemon.rs"
required-features = ["nushell"]
[lib]
name = "daemon_cli"
path = "src/lib.rs"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
[profile.bench]
opt-level = 3
lto = true