[package]
name = "zinit"
version = "0.3.7"
edition = "2024"
license = "Apache-2.0"
repository = "https://forge.ourworld.tf/geomind_code/zinit"
documentation = "https://docs.rs/zinit"
description = "Process supervisor with dependency management"
[lib]
name = "zinit"
path = "src/lib.rs"
[[bin]]
name = "zinit"
path = "src/bin/zinit.rs"
required-features = ["client"]
[[bin]]
name = "zinit-server"
path = "src/bin/zinit-server.rs"
required-features = ["server"]
[[bin]]
name = "zinit-pid1"
path = "src/bin/zinit-pid1.rs"
required-features = ["pid1"]
[features]
default = ["client", "server"]
sdk = []
client = ["sdk", "clap"]
tui = ["client", "ratatui", "crossterm", "tokio", "async"]
repl = ["client", "rustyline", "colored", "dirs"]
client-full = ["client", "tui", "repl"]
server = ["sdk", "tokio", "petgraph", "nix", "anyhow", "tracing", "tracing-subscriber", "clap", "sysinfo", "log"]
pid1 = ["sdk", "nix", "tracing", "tracing-subscriber", "clap"]
async = ["tokio"]
full = ["client-full", "server", "pid1"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.9"
thiserror = "2.0"
tokio = { version = "1.48", features = ["full", "process"], optional = true }
petgraph = { version = "0.8", optional = true }
nix = { version = "0.30", features = ["signal", "process", "reboot", "fs"], optional = true }
libc = "0.2"
anyhow = { version = "1.0", optional = true }
tracing = { version = "0.1", optional = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true }
clap = { version = "4.5", features = ["derive"], optional = true }
ratatui = { version = "0.30", optional = true }
crossterm = { version = "0.29", optional = true }
rustyline = { version = "17.0.2", optional = true }
colored = { version = "3.0.0", optional = true }
dirs = { version = "6.0.0", optional = true }
sysinfo = { version = "0.37.2", optional = true }
log = { version = "0.4", optional = true }
[dev-dependencies]
tempfile = "3.14"
rstest = "0.23"
serial_test = "3.2"
tokio = { version = "1.48", features = ["full", "process", "test-util"] }