Varlink – это интерфейс ядра и протокол, который удобен для чтения как людьми, так и машинами.
Интерфейс Varlink сочетает в себе классические параметры командной строки UNIX, текстовые форматы STDIN/OUT/ERROR, страницы справочного руководства, служебные метаданные и эквивалентен файловому дескриптору FD3. Varlink доступен из любой среды программирования.
Интерфейс Varlink определяет, какие методы будут реализованы и как. Каждый из методов имеет название и задаваемые параметры ввода и вывода.
Есть возможность документирования путем добавления комментариев перед документируемым куском кода.
В протоколе Varlink все сообщения кодируются как объекты JSON и заканчиваются байтом NUL.
Сервис отвечает на запросы в том же порядке, в котором они были получены – сообщения никогда не мультиплексируются. Тем не менее, несколько запросов могут быть поставлены в очередь в соединении, чтобы включить конвейерную обработку.
Распространенным случаем является простой вызов метода с единственным ответом. В некоторых других случаях сервер может не отвечать вовсе или же ответить несколько раз на один вызов. Более подробное описание здесь.