$darkmode
Elektra 0.11.0
elektra-plugins(7) -- plugins overview

Multiple plugins can be mounted into the key database (KDB). On every access to the key data base they are executed and thus can change the functionality and behavior.

Unlike Elektra's core the plugins have all kinds of dependencies. It is the responsibility of the plugin to find and check its dependencies using CMake. If a dependency cannot be found, the plugin will automatically disable itself.

Description

Elektra has a wide range of different plugins. The plugin folders should contain a README.md with further information. (Or follow links below.) The plugins are:

plugins.png
Overview Plugins

C-Interface

All plugins implement the same interface:

Furthermore, plugins might export symbols:

KDB-Interface

Installation

See INSTALL. Many plugins are already part of the core package libelektra5. The package that includes a plugin which does not belong to the libelektra5 package can be found in it's README.md.

See Also

For an easy introduction, see this tutorial how to write a storage plugin. For more background information of the plugins framework, continue here. Otherwise, you can visit the the API documentation.

Plugins

Backends

Backends provide access to different data sources (e.g. files, databases, network resources)

Resolver

Before configuration is actually written, the file name needs to be determined (resolvers will be automatically added by kdb mount):

Furthermore, there are following experimental resolvers:

Storage

Are responsible for reading writing the configuration to configuration files.

Read and write everything a KeySet might contain:

Read (and write) standard config files:

Using semi-structured data for config files, mainly suitable for spec-namespace (put a focus on having nice syntax for metadata):

Only suited for import/export:

Plugins that just show some functionality, (currently) not intended for productive use:

System Information

Information compiled in Elektra:

Providing information found on the system not available in persistent files:

Filter

Filter plugins process keys and their values in both directions. In one direction they undo what they do in the other direction. Most filter plugins available now encode and decode values. Storage plugins that use characters to separate key names, values or metadata will not work without them.

Rewrite unwanted characters within strings (code-plugins):

Rewrite unwanted characters within binary data (binary-plugins):

Other filters:

Experimental transformations (are not recommended to be used in production):

Notification and Logging

Log/Send out all changes to configuration to:

Notification of key changes:

Debug

Trace everything that happens within KDB:

Checker

Copies metadata to keys:

Plugins that check if values are valid based on metadata (typically copied by the spec plugin just before) to validate values:

The same but experimental:

Other validation mechanisms not based on metadata:

Interpreter

These plugins start an interpreter and allow you to execute a script in an interpreted language whenever Elektra’s key database gets accessed. Note that they depend on the presence of the respective binding during run-time:

Other Important Plugins

Plugins for Development

Internal Plugins

Internally used and hard coded into libelektra-kdb. Don't try to use manually.

Deprecated Plugins

Please avoid, if possible, to use following plugins: