shep-core
The shared tier of shep, a process manager written in Rust. One binary runs a daemon called the shepherd, which keeps a flock of your long-running processes alive.
This crate holds what the other three agree on:
config: the Flockfile reader. TOML, YAML, JSON and JSON5, discovered by searching ten filenames in a fixed order. Unknown fields are a parse error rather than a shrug. Durations and sizes have a strict grammar, so512Mand30sparse while512MBand1.5Gdo not.protocol: the request and response types the CLI and the daemon exchange, plus the length-delimited codec that frames them and the bus events a subscriber receives.barks: the append-only alert ledger at$SHEP_HOME/barks.jsonl, written under a file lock and capped by evicting whole lines oldest first.kv: the flat key/value store at$SHEP_HOME/kv.json, behind the same lock discipline.
It has no process control and opens no sockets. Supervision lives in
shep-daemon, talking to it lives in shep-client, and the shep binary
itself is built by the crate of the same name.
shep is pre-release. Anything public here can change before 1.0, and the crate's CHANGELOG records what moved.
License
MIT OR Apache-2.0, at your option.