Насколько я знаю, существует только одна реализация соответствующих стандартов freedesktop.org.
Это эталонная реализация в xdg-utils:
https://www.freedesktop.org/wiki/Software/xdg-utils/
Инструменты написаны в сценарии оболочки, например, вот исходный код для xdg-open
:
https://cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/xdg-open.in
Так что, безусловно, самый простой способ - просто вызвать xdg-откройте скрипт через Process.spawn_async
и друзей.
Если вы настаиваете на использовании библиотечной функции, вам придется самостоятельно реализовать стандартную соответствующую библиотеку.
Обновление:
Существует довольно много библиотек на разных языках, которые реализуют некоторые стандарты freedesktop.org, например, вот список на GitHub:
https://github.com/topics/xdg
Например, здесьэто инструмент, похожий на xdg-open, написанный на D:
https://github.com/FreeSlave/mimeapps/blob/master/source/mimeapps.d
Пока я не нашел библиотеку Vala / GLib или plain C, которую можно легко использовать изприложение Vala.
Обновление 2:
На самом деле яОказывается, в GLib есть что-то для этой цели (или, точнее, в Gio):
https://valadoc.org/gio-2.0/GLib.AppInfo.launch_default_for_uri_async.html
https://developer.gnome.org/gio/stable/GAppInfo.html
Так что вы должны иметь возможность использоватьGLib.AppInfo.launch_default_for_uri_async
метод.