The three main points relevant for most people are\+:


\begin{DoxyEnumerate}
\item Even though Elektra provides a global keydatabase configuration files stay human read-\/ and writable which allows us to integrate unmodified software.
\item Flexible adoption on how the configuration is accessed via plugins\+: you can run arbitrary code, e.\+g. do a {\ttfamily git commit} or log/notify when configuration files are changed.
\item Elektra allows you to specify configuration values\+:
\begin{DoxyItemize}
\item use the value of other configuration values (symbolic links)
\item calculate the values based on other configuration values
\item validation configuration files
\item generate code based on it
\item \hyperlink{md_src_plugins_README_src_plugins_README_md}{and much more}
\end{DoxyItemize}
\end{DoxyEnumerate}

\subsubsection*{Unique Features}

Features that rarely can be found elsewhere (at least in this combination)\+:


\begin{DoxyItemize}
\item Bootstrap code and proper abstraction is included\+:
\begin{DoxyItemize}
\item you do not need to worry about the file names of configuration files in the application
\item cascading between {\ttfamily /etc}, {\ttfamily \$\+H\+O\+M\+E}, {\ttfamily cwd} and so on
\item you can change which Elektra path is connected to which configuration file with \hyperlink{md_doc_help_elektra-mounting_doc_help_elektra-mounting_md}{mounting}
\item Portable across O\+S (Linux, B\+S\+D, w64, mac os x,.. ) and desktop systems (G\+N\+O\+M\+E, K\+D\+E,...)
\end{DoxyItemize}
\item No daemon, so no single point of failure but still having guarantees of consistent, validated files with good performance.
\item Provides 3-\/way merging for configuration upgrades.
\end{DoxyItemize}

\subsubsection*{Further reasons}


\begin{DoxyItemize}
\item Links and automatic calculation of values\+: unlike with other solutions you do not need to duplicate configuration values for different applications but you can comfortably link between them which makes many inconsistencies impossible.
\item Allows us to easily create G\+U\+Is and web-\/\+U\+Is for the whole configuration on the system.
\item Allows you to import/export all parts of the configuration.
\item Syntax independence\+: you can consistently use your favourite syntax.
\item Configuration Management (such as Puppet) can be used on top of it without having to fiddle with specifics of every configuration file.
\item C\+L\+I-\/tool available
\item {\ttfamily kdb editor} allows you to edit any path of Elektra with your favourite syntax (independent of the actual syntax of the configuration files that store values of this path).
\item Allows us to also (integrate commandline arguments and environment)\mbox{[}/src/libs/getenv\mbox{]} into a consistent place for configuration.
\item Reduces huge amount of code\+: Nearly every application has very similar code\+:
\begin{DoxyItemize}
\item finding the correct configuration file (for different O\+S)
\item parsing configuration files
\item validating configuration files
\item replace configuration files on changes
\end{DoxyItemize}
\item All advantages libraries have\+:
\begin{DoxyItemize}
\item Performance\+: Improvements in the library benefits all applications.
\item The library only needs to be loaded once in the memory.
\item On fixes not all binaries of all applications need to be replaced.
\end{DoxyItemize}
\item All advantages maintained code with a community has\+:
\begin{DoxyItemize}
\item If something does not work, open an issue.
\item If you have a question, open an issue.
\item Regular releases. 
\end{DoxyItemize}
\end{DoxyItemize}