sd-bus(3) A lightweight D-Bus and kdbus client library


#include <systemd/sd-bus.h>

pkg-config --cflags --libs libsystemd


sd-bus.h provides an implementation of a D-Bus client. It can interoperate both with the traditional dbus-daemon(1), and with kdbus. See m[blue][] for more information about the big picture.


Interfaces described here have not been declared stable yet, and are not accessible from This documentation is provided in hope it might be useful for developers, without any guarantees of availability or stability.

See sd_bus_default(3), sd_bus_new(3), sd_bus_request_name(3), sd_bus_start(3), sd_bus_message_append(3), sd_bus_message_append_basic(3), sd_bus_message_append_array(3), sd_bus_message_append_string_memfd(3), sd_bus_message_append_strv(3), sd_bus_message_can_send(3), sd_bus_message_get_cookie(3), sd_bus_message_get_monotonic_usec(3), sd_bus_send(3), sd_bus_set_address(3), sd_bus_set_description(3), sd_bus_set_prepare(3), sd_bus_creds_get_pid(3), sd_bus_creds_new_from_pid(3), sd_bus_get_name_creds(3), sd_bus_get_owner_creds(3), sd_bus_negotiate_fds(3), sd_bus_path_encode(3), sd-bus-errors(3), sd_bus_error(3), sd_bus_error_add_map(3), sd_bus_set_allow_interactive_authorization(3) for more information about the functions available.


These APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd pkg-config(1) file.