Выбор кросс-дистрибутивной реализации DBus - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь написать демон systemd, который должен регистрировать новый сервис в SDP, прослушивать соединения RFCOMM и обмениваться некоторой информацией с другими устройствами Bluetooth. Демон должен быть максимально независимым от дистрибутивов. Поскольку я хочу использовать BlueZ5, мне нужно использовать DBus (что является новым для меня).

Итак, вот мой вопрос, выберет ли GDBus мой демон только для систем с установленным GNOME? Или, аналогично, QtDBus будет работать только с KDE? Если да, что я должен сделать, чтобы иметь возможность запустить его на нескольких дистрибутивах?

1 Ответ

0 голосов
/ 17 ноября 2018

Из freedesktop wiki

Низкоуровневая справочная библиотека libdbus не имеет необходимых зависимостей; единственная обязательная зависимость демона ссылочной шины - это синтаксический анализатор XML (Экспаты). Привязки более высокого уровня, специфичные для конкретных структур (Qt, GLib, Java, C #, Python и т. Д.) Добавляют больше зависимостей, но могут сделать больше предположения и, следовательно, гораздо проще в использовании. Привязки развиваются отдельно от низкоуровневого libdbus, поэтому некоторые из них более зрелые и ABI-стабильнее других; проверьте документы на привязку, которую вы планируете использовать.

Так что вы можете быть настолько независимыми от платформы, насколько захотите.

Предложение Партибана в комментариях, вероятно, является лучшим выбором, поскольку даже разработчики libdbus рекомендуют GDBus в качестве лучшего варианта.

Хороший обзор ваших опций можно найти здесь .

...