Crate dbus_addr

Source
Expand description

§Rust D-Bus address parsing

This project provides a Rust library for handling D-Bus addresses following the D-Bus specification.

Server addresses consist of a transport name followed by a colon, and then an optional, comma-separated list of keys and values in the form key=value.

use dbus_addr::DBusAddr;

let addr: DBusAddr = "unix:path=/tmp/dbus.sock".try_into().unwrap();

§Miscellaneous and caveats on D-Bus addresses

  • Assumes values are UTF-8 encoded.

  • Accept duplicated keys, the last one wins.

  • Assumes that empty key=val is accepted, so transport:,,guid=... is valid.

  • Allows key only, so transport:foo,bar is ok.

  • Accept unknown keys and transports.

§Acknowledgments

  • This project is originated from the zbus project.

  • Special thanks to all the contributors who have been involved in this project.

§License

MIT license

Modules§

transport
D-Bus supported transports.

Structs§

DBusAddr
A parsed bus address.
DBusAddrList
A bus address list.
DBusAddrListIter
An iterator of D-Bus addresses.
Guid
Universally-unique IDs for D-Bus addresses.
OwnedDBusAddr
An owned bus address.
OwnedDBusAddrListIter
An iterator of D-Bus addresses.

Enums§

Error
Error returned when an address is invalid.

Traits§

ToDBusAddrs
A trait for objects which can be converted or resolved to one or more DBusAddr values.
ToOwnedDBusAddrs
A trait for objects which can be converted or resolved to one or more OwnedDBusAddr values.

Functions§

decode_percents
Percent-decode the string.
encode_percents
Percent-encode the value.
session
Get the address for session socket respecting the DBUS_SESSION_BUS_ADDRESS environment variable. If we don’t recognize the value (or it’s not set) we fall back to $XDG_RUNTIME_DIR/bus
system
Get the address for system bus respecting the DBUS_SYSTEM_BUS_ADDRESS environment variable. If we don’t recognize the value (or it’s not set) we fall back to /var/run/dbus/system_bus_socket

Type Aliases§

Result