
dbus-crossroads is a library that helps you implement interfaces on object paths, i e
"server side" method handler code.
To get started, you can jump into the commented examples,
one for sync
one for async (dbus-tokio),
and one slightly more advanced,
or familiarize yourself using the API reference.
It supersedes the dbus::tree
module. Design decisions (compared to dbus::tree
):
- First class support for both sync and async methods
- Detect method arguments automatically through generics
- ...but less generics in structs you use, which means less cluttered API
- The tree/crossroads instance is
Send
(but not Sync
).
- You can now modify the instance from within a method handler
- It is objects (paths) that can contain custom data, and they can contain different data for different objects
- Interface descriptions are kept in a registry, which means less reference counting