The first time I came across varlink was the Podman 1.x remote API for client/server communication between clients and a host with the actual Podman installation. However, in Podman 2.x, it was replaced by a RESTful API. Afair, the reason was that the varlink C client was discontinued. Does anyone know if varlink is still actively maintained?
Here are some facts I gathered last time Varlink was discussed:
Varlink is produced by Red Hat, apparently - or by people who use Red Hat things: both examples (DNF, Podman) are Redhat projects.
It seems to be an effort to apply the Interface Definition Language model to UNIX daemons/services/tools by adding a new “standard IO file descriptor” for structured IO using a typed interface, as opposed to the current STDIN/STDOUT/STDERR which are existing un typed byte streams.
Using a new FD instead of agreeing to layer Varlink protocol over STDIO means that existing programs can adopt Varlink without breaking backwards compat or making negotiation even more complicated.
On a complete tangent - because after reading the link I remain clueless about what services/things varlink wants to connect (and also: why are the error messages not human readable by default?) - I find myself wondering if the time has yet come for us to start writing our Human-Machine interfaces in Lojban[1]?
6 comments
[ 2.6 ms ] story [ 23.4 ms ] threadVarlink is produced by Red Hat, apparently - or by people who use Red Hat things: both examples (DNF, Podman) are Redhat projects.
It seems to be an effort to apply the Interface Definition Language model to UNIX daemons/services/tools by adding a new “standard IO file descriptor” for structured IO using a typed interface, as opposed to the current STDIN/STDOUT/STDERR which are existing un typed byte streams.
Using a new FD instead of agreeing to layer Varlink protocol over STDIO means that existing programs can adopt Varlink without breaking backwards compat or making negotiation even more complicated.
EDIT: Podman removed Varlink https://podman.io/blogs/2020/01/17/podman-new-api.html
[1] https://en.wikipedia.org/wiki/Lojban and https://mw.lojban.org/papri/Lojban#Learning_Lojban