hatchery-server 0.2.21

hq-core server: drain, operator control, tasks, m4a, provisioning, memory: one supervisor process, loopback control and health
Documentation
[package]
name = "hatchery-server"
version = "0.2.21"
edition = "2021"
license = "MIT"
repository = "https://github.com/ZENG3LD/hatchery"
description = "hq-core server: drain, operator control, tasks, m4a, provisioning, memory: one supervisor process, loopback control and health"

[lib]
name = "hatchery_server"

[[bin]]
name = "hatchery-server"
path = "src/main.rs"

# memory runs as a supervised process; the m4a library is
# embedded. (All crates now share one native sqlite, rusqlite 0.36.)

[dependencies]
hex = "0.4"
base64 = "0.22"
sha2 = "0.10"
hatchery-keystore = { path = "../hatchery-keystore", version = "0.2.21" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
toml = "0.8"
tokio = { version = "1", features = ["io-util", "macros", "net", "process", "rt-multi-thread", "signal", "sync", "time"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
m4a-agent = { version = "0.4.14" }
# E2E session letters: per-session Olm/Megolm client of the real m4a (vault and identity rooted in the keystore).
mail4agent-messenger-shell = { version = "0.4.14", default-features = false, features = ["tier-server"] }
zeroize = "1"
rusqlite = { version = "0.36", features = ["bundled"], optional = true }
hatchery-enroll = { path = "../hatchery-enroll", version = "0.2.21" }
hatchery-core = { path = "../hatchery-core", version = "0.2.21" }
hatchery-c2-client = { path = "../hatchery-c2-client", version = "0.2.21" }
gate4agent-node-protocol = { version = "0.5.4" }
gate4agent-node-wire = { version = "0.5.4" }
gate4agent-types = { version = "0.5.2" }

# musl/Alpine builds: Alpine ships no static libdbus, so build it from source
# (pulled transitively via m4a-agent -> keyring).
[target.'cfg(target_env = "musl")'.dependencies]
libdbus-sys = { version = "0.2", features = ["vendored"] }

[features]
# Full kit by default: there is no light mode.
default = ["kit"]
kit = ["m4a", "memory"]
# m4a: key vault of the node-side messenger (m4a-agent 0.4); master key from env.
m4a = ["dep:rusqlite"]
# memory4agent-server (crates.io memory4agent 0.3) as an on-demand loopback process.
memory = []

[dev-dependencies]
tempfile = "3"
async-trait = "0.1"
hatchery-c2 = { path = "../hatchery-c2", version = "0.2.21" }