\hypertarget{md_doc_decisions_library_split_autotoc_md2020}{}\doxysection{Problem}\label{md_doc_decisions_library_split_autotoc_md2020}
libelektra.\+so contains KDB and Key(\+Set) but plugins only need Key(\+Set) but not KDB.\hypertarget{md_doc_decisions_library_split_autotoc_md2021}{}\doxysection{Constraints}\label{md_doc_decisions_library_split_autotoc_md2021}

\begin{DoxyItemize}
\item full and static libraries remain unchanged
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2022}{}\doxysection{Assumptions}\label{md_doc_decisions_library_split_autotoc_md2022}

\begin{DoxyItemize}
\item linker overhead of less than a dozen libraries is not measurable
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2023}{}\doxysection{Considered Alternatives}\label{md_doc_decisions_library_split_autotoc_md2023}

\begin{DoxyItemize}
\item keep current situation
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2024}{}\doxysection{Decision}\label{md_doc_decisions_library_split_autotoc_md2024}

\begin{DoxyItemize}
\item \href{/src/libs}{\texttt{ split library}}
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2025}{}\doxysection{Rationale}\label{md_doc_decisions_library_split_autotoc_md2025}

\begin{DoxyItemize}
\item allows various users (plugins, applications) to link to exactly what they need
\item allows symbol versioning on different levels (for different evolving libraries)
\item allows alternative implementation of parts of Elektra, e.\+g. a new libkdb which still uses libcore
\item easier to navigate in source tree
\item facilitates code reuse between plugins
\item easier entrance to create commonly used libs (less fear of \char`\"{}changes in the core\char`\"{} for some helper functionality)
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2026}{}\doxysection{Implications}\label{md_doc_decisions_library_split_autotoc_md2026}

\begin{DoxyItemize}
\item bindings need to decide which parts to link against
\item plugins and applications need changes
\item we need to get rid of the legacy library
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2027}{}\doxysection{Related Decisions}\label{md_doc_decisions_library_split_autotoc_md2027}

\begin{DoxyItemize}
\item none
\end{DoxyItemize}\hypertarget{md_doc_decisions_library_split_autotoc_md2028}{}\doxysection{Notes}\label{md_doc_decisions_library_split_autotoc_md2028}

\begin{DoxyItemize}
\item was discussed in a meeting, all were in favor (or did not say anything)
\end{DoxyItemize}

Sizes of libelektra.\+so


\begin{DoxyItemize}
\item 0.\+8.\+14 unmodified 128K
\item 0.\+8.\+14 w/o \mbox{\hyperlink{meta_8c}{meta.\+c}} 120K
\item 0.\+8.\+14 w/o array 126K
\end{DoxyItemize}

So the removal of the non-\/core functionality is actually relevant. And kdb/core is now nearly half-\/split\+:


\begin{DoxyItemize}
\item 52K lib/libelektra-\/core.\+so.\+0.\+8.\+14
\item 7,5K lib/libelektra-\/ease.\+so.\+0.\+8.\+14
\item 1,3M lib/libelektra-\/full.\+so.\+0.\+8.\+14
\item 76K lib/libelektra-\/kdb.\+so.\+0.\+8.\+14
\item 9,3K lib/libelektra-\/meta.\+so.\+0.\+8.\+14
\item 5,1K lib/libelektra-\/plugin.\+so.\+0.\+8.\+14
\item 7,6K lib/libelektra-\/proposal.\+so.\+0.\+8.\+14 
\end{DoxyItemize}