More V less D
Someone a short ELI ? I read the article and the comments… But I have no idea what this is about.
Maybe someone has an article that explains for someone not being educated as computer scientist ?
DBus is a system-wide messaging system. It’s for stuff like notifications and system-wide events, …or so do I think. But the aim is to allow all programs, running system-wide, to announce anything for others programs to react to.
This post requests people to use Varlink instead.
This is similar to the PulseAudio versus Pipewire and X11 versus Wayland situations.
how is varlink better than dbus to justify that change?
The main reason is that Dbus is not available during early stages of boot. There are many others.
Varlink seems to be better or the same compared to dbus in all except two things:
- json doesn’t handle 64bit integers, it handles 52bit (or 54bit?) (size of mantissa for floats)
- you cannot (yet) list all things connected to the bus
Details here:
Thank you :)) ! I have the same question as @umbrella if your have any other insights to share !
how is varlink better than dbus to justify that change?
I’m unfortunately not aware.
What I do know is that D-Bus (and not “DBus”) apparently doesn’t work with MIME types directly. I may have been misinformed here - but this is some information I have received.
Essentially, the data sent cannot be assigned a type or format.
On the web, all data sent by a server has a MIME type (“
text/html
”, “image/png
”, “video/mp4
”).Android’s system for inter-process (“running program”) communication, intents, does include.
…Even Windows does, with its whatever complicated APIs.
D-Bus doesn’t, so Tuxes too, don’t. …Yet.D-Bus is apparently also not secure enough. Probably not as bad as X11, but not good enough.
So far, KDE and GNOME have had their own " wrapper" systems to allow using D-Bus through a layer of their code to cover little inconveniences like this.
D-Bus is a system service that is used by processes to communicate with others. It’s commonly used, but as users we rarely see anything of it. It’s usage for programmers and sysadmins is/can be quite complicated. It looks they want to add a new simpler one. Haven’t heard of varlink before, though
Using json for IPC but a binary format for log files sounds insane to me, but alright.
So, Poettering wants to make life difficult for everyone using something other than his precious again by transitioning from the normal standard for IPC to something hardly anyone has ever heard of or uses that’s based on JSON? Seriously? 🤢
It’s not just “hardly anyone,” it’s “literally no one.” Varlink was invented by the systemd developers out of whole cloth specifically for this purpose.
The only argument I see in favour of varlink is the ease of debugging, and this should never being an argument in a technical decision.
When your stuff is running in “prod”, your " ease of debugging" is thrown away, but the system continue to suffer.
Json for IPC is a terrible idea.
early boot stages?