What is this

May 19, 2026 · View on GitHub

This repo tries to give an overview over the landscape of the the different dbus implementations that exists in the rust ecosystem.

  1. https://github.com/KillingSpark/rustbus
  2. https://github.com/diwic/dbus-rs/ (bindings to C library)
  3. https://github.com/diwic/dbus-rs/tree/master/dbus-native
  4. https://github.com/dbus2/zbus/
  5. https://github.com/Arnavion/dbus-pure
  6. https://github.com/srwalter/dbus-bytestream
  7. https://github.com/LinkTed/dbus-message-parser
  8. https://github.com/cmaves/async-rustbus
  9. https://github.com/gtk-rs/gtk-rs-core

Note that I am the author of rustbus, but of course I am trying to be as objective as possible here.

Current state

Some benchmarks exist. I plan to add equivalent ones for the missing libs, and more kinds of benchmarks.

The benchmarks

  1. MarshalMix: Build a signal message with mixed params and marshal it
  2. MarshalBigArray: Build a signal message with a big u64 array and marshal it
  3. MarshalStrArray: Build a signal message with a big String array and marshal it
  4. Marshal + Send: Connect to the sessionbus, build a signal and send it to the bus

The dbus-message-parser does not provide any means of sending messages, so this benchmark is omitted.

Current results

I am running this on a Ryzen 3800X (/proc/cpuinfo says: AMD Ryzen 7 3800X). Your values might vary a bit.

I used rustc 1.95.0 (59807616e 2026-04-14) to run these benchmarks.

To replicate these results just run: cargo bench. That will run all benchmarks.

LibraryMarshalMixedMarshalBigStrArrayMarshalBigArrayMarshal + Send
rustbus3.4442 µs98.406 µs2.2243 µs127.45 µs
dbus-rs169.14 µs1.9275 ms393.13 µs285.30 µs
dbus-native2.9645 µs272.11 µs45.946 µs81.642 µs
dbus-bytestream12.875 µs1.1294 ms151.96 µs102.11 µs
dbus-message-parser40.201 µs4.7009 ms792.06 µsNaN
dbus-pure12.905 µs270.84 µs21.077 µs91.391 µs
zvariant9.5993 µs229.79 µs75.775 µs145.99 µs
zvariant-derive9.6960 µs231.98 µs79.295 µs147.36 µs
rustbus-async4.1619 µs104.90 µs2.2733 µs149.61 µs
glib35.476 µs2.8925 ms1.1315 ms215.65 µs