socket-api feature: make the daemon core embeddable in-process
Gate the unix-socket server, systemd activation, and the socket-serving run() behind a new default socket-api feature, with required-features on the binary. The core modules (daemon, store, transfer, discovery, meta) stay feature-free, so platforms without a daemon model (iOS — redoal ADR-0012) can embed Daemon directly via cargo check -p varde-daemon --no-default-features. Also cfg-gate the abstract-socket branch of sd_notify to Linux: abstract socket names don't exist elsewhere, and this was the one spot keeping varde-daemon from compiling on macOS at all. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ rust-version.workspace = true
|
||||
[[bin]]
|
||||
name = "varde-daemon"
|
||||
path = "src/main.rs"
|
||||
required-features = ["socket-api"]
|
||||
|
||||
[dependencies]
|
||||
varde-proto = { workspace = true }
|
||||
@@ -42,8 +43,12 @@ tracing-subscriber = { workspace = true }
|
||||
[features]
|
||||
# Metered-connection detection via NetworkManager over D-Bus. On by
|
||||
# default; disable for systems without D-Bus (they run as unmetered).
|
||||
default = ["metered"]
|
||||
default = ["metered", "socket-api"]
|
||||
metered = ["dep:zbus"]
|
||||
# The unix-socket API server, systemd socket activation, and signal
|
||||
# handling. On by default; disable to embed the daemon core in-process
|
||||
# on platforms without a daemon model (iOS — ADR-0012 in redoal).
|
||||
socket-api = []
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3"
|
||||
|
||||
Reference in New Issue
Block a user