Skip to content

D-Busサービス開発のライブラリ

D-Busを使ったサービスを作ったり、サービスにアクセスしたりといった実装をするためのライブラリは複数存在している。Freedekstopに言語別のリストがあった。

C言語では libdbus がD-Bus公式から提供されているけれど、これは低レベルAPIを提供するものでしかないので、簡単なオブジェクトを生成したり受信したりするだけでも多くのコードを書かなければならない。また Introspectable インターフェイスで利用するXMLなども全て用意しなければならず、大変なので別のライブラリを探すほうがいいと公式に書かれているらしい。

なのでC言語では GDBusQtDBus を使うと良い。D-Busクライアントを作りたいだけならsystemdsd-dbus(3)という選択肢もあるが、2026年前半にsystemdはVARLINKへ移行しつつあるので、今後のメンテナンスがどうなるのかは分からない。

なのでC言語に拘らないのであれば、別の言語でD-Busバインディングを使うほうがいいのだろう。Goならgodbus/dbusがある。