= Source repository overview = The freeDiameter source code is split in several modules. The layout of the source repository mimics this structure. Each component is briefly explained here: libfdproto:: The "lower level" library of the framework. This library provides the necessary functions to parse or create Diameter messages and AVPs, including dictionary support. It also provides additional features such as logging facility, simple Diameter sessions handling support, etc. The complete API to the library is documented in the source file [source:freeDiameter/include/freeDiameter/libfdproto.h include/freeDiameter/libfdproto.h]. It is conceivable that this library will be reused by other projects that do not require the full freeDiameter framework. libfdcore:: This is the main component of the {{{freeDiameter}}} framework. This library handles all Diameter network operations, such as management of peers connections, Diameter Base Protocol operations, messages routing, etc. In addition, this library can load {{{extensions}}} to support new features. To initialize this library, a configuration file is required (see [wiki:Configuration] page about this file). The complete API to this library is documented in the source file [source:freeDiameter/include/freeDiameter/libfdcore.h include/freeDiameter/libfdcore.h]. This library strongly depends on {{{libfdproto}}} and also the GNU TLS library. freeDiameterd:: This is a simple daemon that parses command-line options, initializes the {{{freeDiameter}}} framework (libfdcore), and waits for signal to terminate. Note that the {{{freeDiameter}}} framework can be used without this daemon by linking the ''libfdcore'' library and calling the appropriate initialization functions directly from a different application. extensions:: This folder contains the source of all extensions that are included in freeDiameter. See the [wiki:Extensions] page for details about each extension. include/freeDiameter:: This contains all the "public" header files for the freeDiameter framework. The header file directly contain the documentation of each function. This is the first place to look for information about a function of the framework. doc:: This folder contains the documentation and sample configuration files for the framework and its extensions. tests:: This contains the unit tests for the framework. We are running the tests nightly on several machines to check for regressions. See the [http://www.freediameter.net/CDash/index.php?project=freeDiameter Dashboard] for the latest test status report. cmake:: This contains additional definitions for the build system. contrib:: This contains additional resources that may be useful to freeDiameter users. See the [source:freeDiameter/contrib/README README] file in this folder for more information. ----