Clone this repo:
  1. 16fef22 Merge pull request #323 from godbus/fuzz by Georg Reinke · 6 weeks ago master
  2. abcc391 sig: don't panic decoding empty dict by Georg Reinke · 6 weeks ago
  3. 3146f5b add fuzz test for (signature) decoding by Georg Reinke · 6 weeks ago
  4. 8e90eb8 Merge pull request #322 from godbus/fix_ci by Georg Reinke · 6 weeks ago
  5. 582a427 CI: use Go 1.17 for golangci-lint by Georg Reinke · 6 weeks ago

Build Status


dbus is a simple library that implements native Go client bindings for the D-Bus message bus system.


  • Complete native implementation of the D-Bus message protocol
  • Go-like API (channels for signals / asynchronous method calls, Goroutine-safe connections)
  • Subpackages that help with the introspection / property interfaces


This packages requires Go 1.12 or later. It can be installed by running the command below:

go get


The complete package documentation and some simple examples are available at Also, the _examples directory gives a short overview over the basic usage.

Projects using godbus

  • fyne a cross platform GUI in Go inspired by Material Design.
  • fynedesk a full desktop environment for Linux/Unix using Fyne.
  • go-bluetooth provides a bluetooth client over bluez dbus API.
  • iwd go bindings for the internet wireless daemon “iwd”.
  • notify provides desktop notifications over dbus into a library.
  • playerbm a bookmark utility for media players.
  • rpic lightweight web app and RESTful API for managing a Raspberry Pi

Please note that the API is considered unstable for now and may change without further notice.


go.dbus is available under the Simplified BSD License; see LICENSE for the full text.

Nearly all of the credit for this library goes to