Convenience LibrariesΒΆ

Using the XDG Portals D-Bus APIs directly is often difficult and error-prone. Fortunately, there are convenience libraries available that significantly ease the development of apps:

  • ASHPD: a Rust crate that provides the APIs to interact with portals in idiomatic Rust. It has support for GTK4, direct X11 windows, and direct Wayland surfaces.

  • libportal: small C library that provides a GObject API to interact with portals. It provides language bindings to a variety of other languages, such as Python, JavaScript, Vala, and more. It has support for GTK3, GTK4, Qt 5, and Qt 6.

  • xdg_desktop_portal: a native Dart package to interact with portals in Dart and Flutter.