Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dbus2/busd
A D-Bus bus (broker) implementation based on zbus
https://github.com/dbus2/busd
communication d-bus dbus ipc rust rustlang zbus
Last synced: about 1 month ago
JSON representation
A D-Bus bus (broker) implementation based on zbus
- Host: GitHub
- URL: https://github.com/dbus2/busd
- Owner: dbus2
- License: other
- Created: 2023-01-13T16:29:44.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-29T04:16:02.000Z (6 months ago)
- Last Synced: 2024-05-29T17:22:21.897Z (6 months ago)
- Topics: communication, d-bus, dbus, ipc, rust, rustlang, zbus
- Language: Rust
- Homepage:
- Size: 359 KB
- Stars: 30
- Watchers: 1
- Forks: 9
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-systemd - busd - Bus bus (broker) implementation (D-Bus)
README
[![Build Status](https://img.shields.io/github/actions/workflow/status/dbus2/busd/ci.yml?branch=main)](https://github.com/dbus2/busd/actions?query=branch%3Amain)
[![crates.io](https://img.shields.io/crates/v/busd.svg)](https://crates.io/crates/busd)# 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:
```bash
cargo install -f busd
```Running a session instance is super easy:
```bash
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:```bash
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:
```bash
# 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](LICENSE-MIT)
[specification]: https://dbus.freedesktop.org/doc/dbus-specification.html
[peer credentials]: https://github.com/dbus2/busd/issues/29