Taking place this week in Berlin was systemd’s annual “All Systems Go” developer conference. Among the interesting talks was Lennart Poettering talking about the ongoing challenges of D-Bus for inter-process communication (IPC) with systemd and how they are looking at Varlink for IPC needs moving forward.
Systemd’s challenges around D-Bus are hardly new and need we bring up past attempts to enhance D-Bus like with the failed KDBUS for in-kernel IPC or then the BUS1 effort from systemd developers albeit the BUS1 in-kernel IPC hasn’t seen much activity in years… It’s just been Dbus-Broker from BUS1 for retaining D-Bus compatibility but being faster and more reliable.
With no D-Bus coming to the Linux kernel on the horizon for IPC, systemd developers are looking at Varlink for the future. Varlink as the interface description format and protocol that is documented at Varlink.org for extremely simple IPC.
Varlink isn’t perfect as the marshalling can be slower than D-Bus for large objects, but is simple, leverages JSON, and makes things nicer than the D-Bus status quo for systemd. With systemd 257 there will be sd-json and sd-varlink as two new libsystemd library components. There is also varlinkctl to serve as a Varlink command line tool for systemd.
Those curious about the systemd plans for Varlink usage and challenges of D-Bus can find Lennart’s presentation at media.ccc.de and embedded above. There is also the PDF slide deck.