Vala Plugins

You MUST have the Vala bindings installed on your system for this to work. They are built by the default GPlugin build.

Example Vala Plugin

Due to the way GPlugin.PluginInfo info works, you must subclass it and set your values in the new constructor. It is recommended that you define this class in a namespace to avoid collisions with other plugins.

Like all plugins in GPlugin, Vala plugins must also implement the gplugin_query, gplugin_load, and gplugin_unload functions. These functions must be in the global namespace.

The following is a basic Vala plugin.

using GPlugin;

namespace BasicPlugin {

public class Info : GPlugin.PluginInfo {
    public Info() {
        string[] authors = {"author1"};

            id: "gplugin/vala-basic-plugin",
            abi_version: 0x01020304,
            name: "basic plugin",
            authors: authors,
            category: "test",
            version: "version",
            license_id: "license",
            summary: "summary",
            website: "website",
            description: "description"


public GPlugin.PluginInfo gplugin_query(out Error error) {
    error = null;

    return new BasicPlugin.Info();

public bool gplugin_load(GPlugin.Plugin plugin, out Error error) {
    error = null;

    return true;

public bool gplugin_unload(GPlugin.Plugin plugin, out Error error) {
    error = null;

    return true;