summaryrefslogtreecommitdiff
path: root/Software/Elektra.mdwn
blob: d57ac27513e2521369c8307262adedf28fb975ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67


# About

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database.  The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration. 


## Facts and Features

* Elektra implements an API to fully access a global key database. 
* Elektra supports mounting of existing configuration files into the global key database. 
* Elektra is multi-process safe and can be used in multi-threaded programs. 
* Elektra (except for some plugins) is portable and completely written in Ansi-C99. 
* Elektra (except for some plugins) has no external dependency. 
* Elektra uses the BSD licence. 
* Elektra is suitable for embedded systems and early boot stage programs. 
* Elektra supports comments and other non-configuration information by meta data. 
* Elektra can import, export and convert supported configuration files. 
* Elektra is able to log and notify other software on any configuration changes using [[dbus|Software/dbus]]. 
* Elektra is able to avoid the problem that any invalid configuration is written into the permanent storage. 
* Elektra is able to provide different mechanisms to locate configuration files. 
* Elektra supports different ways to escape and encode content of configuration files. 
* Standard key/value pair hierarchy and semantics are defined within freedesktop.org. 

## Further Information

To get an introduction, it is best to take a look at the [[presentation|http://www.libelektra.org/ftp/elektra/presentations/2012/lgm.odp]], see the [[poster|http://www.libelektra.org/ftp/elektra/poster.pdf]] and read the [[abridgment|http://www.libelektra.org/ftp/elektra/abridgement.pdf]]. 

The currently best information about Elektra is [[this paper|http://www.libelektra.org/ftp/elektra/thesis.pdf]]. 

The API documentation can be found [[here|http://doc.libelektra.org/api/current/html]]. 


## Contact

Do not hesitate to ask any question on 

* [[https://lists.sourceforge.net/lists/listinfo/registry-list|https://lists.sourceforge.net/lists/listinfo/registry-list]] 
or one of the [[AUTHORS|https://gitorious.org/elektra-initiative/libelektra/blobs/master/doc/AUTHORS]]. 


# Get Started


## Download

Elektra's uses a [[git repository at gitorious|http://gitorious.org/elektra-initiative/libelektra]]. 

The latest source code can be checked out with: 

* git-clone git://gitorious.org/elektra-initiative/libelektra.git 
Releases can be downloaded from [[ftp|ftp://ftp.libelektra.org/elektra/releases/]] and [[http|http://www.libelektra.org/ftp/elektra/releases/]] 

Which are also [[mirrored at|http://gitorious.org/elektra-initiative/ftp]]: 

* git-clone git://gitorious.org/elektra-initiative/ftp.git 

## Compile

See the [[COMPILE|https://gitorious.org/elektra-initiative/libelektra/blobs/master/doc/COMPILE]] document in the repository for informations how to compile the software. 


## Install

The preferred way to install Elektra is by using packages provided for your distribution. 

If there are no packages available, see the [[INSTALL|https://gitorious.org/elektra-initiative/libelektra/blobs/master/doc/INSTALL]] document.