Introduces JsonStream, a generic transport layer for JSON-line message exchange over a pair of file descriptors. It owns the input/output buffers, SCM_RIGHTS fd passing, the deferred output queue, the read/write/parse step functions, sd-event integration (input/output/time event sources), the idle timeout machinery, and peer credential caching, but knows nothing about the specific JSON protocol on top — the consumer drives its state machine via phase/dispatch callbacks supplied at construction. sd-varlink is reworked to delegate the entire transport layer to a JsonStream owned by sd_varlink. The varlink struct drops every transport-related field (input/output buffers and fds, output queue, fd-passing state, ucred/pidfd cache, prefer_read/write fallback, idle timeout, description, event sources) — all of that lives in JsonStream now. What remains in sd_varlink is the varlink-protocol state machine (state, n_pending, current/previous/sentinel, server linkage, peer credentials accounting, exec_pidref, the varlink-specific quit and defer sources) and a thin wrapper layer over the JsonStream API. The should_disconnect / get_timeout / get_events / wait helpers all live in JsonStream now and are driven by a JsonStreamPhase the consumer reports via its phase callback.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
