busd

Crates.iobusd
lib.rsbusd
version0.4.0
sourcesrc
created_at2023-06-29 21:56:55.614875
updated_at2024-10-21 04:05:15.328547
descriptionA D-Bus bus (broker) implementation
homepage
repositoryhttps://github.com/dbus2/busd
max_upload_size
id903787
size149,198
Zeeshan Ali Khan (zeenix)

documentation

README

Project logo: a bus

Build Status crates.io

busd

A D-Bus bus (broker) implementation in Rust. Since it's pure Rust, it's much easier to build for multiple platforms (Linux, Mac and Windows being the primary targets) than other D-Bus brokers.

Status

Alpha. It's not ready for production use yet. Only the essentials are in place.

Installation & Use

Currently, we can only offer installation from source:

cargo install -f busd

Running a session instance is super easy:

busd --print-address

--print-address will print the address of the bus to stdout. You can then use that address to connect to the bus:

export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus,guid=d0af79a44c000ce7985797ba649dbc05"
busctl --user introspect org.freedesktop.DBus /org/freedesktop/DBus
busctl --user list

Since auto-starting of services is not yet implemented, you'll have to start services manually:

# Probably not the best example since the service just exits after a call to it.
/usr/libexec/dleyna-renderer-service &
busctl call --user com.intel.dleyna-renderer /com/intel/dLeynaRenderer com.intel.dLeynaRenderer.Manager GetRenderers

The plan

Full compatibility with the D-Bus specification

Implement all features that manadated and recommended by the specification.

Additional Header Fields

While the D-Bus spec does not allow custom header fields in messages, busd will still support a few additional on-demand (only) fields, that are useful for certain applications. One example is addition of peer credentials on every message, which can avoid round-trips on the bus.

License

MIT

Commit count: 394

cargo fmt