Project structure - lodle/Desurium GitHub Wiki
Executables
Bootloader
This is the main executable used to launch Desura. It is responsible for downloading the initial install and making sure all files are present for launching the ui. It also handles installing updates with the help of the service on windows.
Browser Host
This hosts an instance of the Cef browser to improve performance and protect against the browser crashing the client.
Service
This is Windows only and handles all the tasks that a normal user cant do such as installing content and setting registry keys.
Toolhelper
This is Windows only and is a special process that needs UAC approval to install tools such as DirectX
Utility
This is used for any thing not covered by the other exe's such as uninstalling and special cases.
Static / Shared
Compiles in to a static or shared library, for use with other parts of the application.
Libraries
MCFCore
Handles MCF archive files including creating, extracting, merging and downloading.
UICore
Main client UI. Currently based on wxWidgets but designed to be able to be swapped out with any UI framework.
UserCore
Logic behind a "logged in" user that allows for installing, downloading and updating of games plus launching , shortcuts and tools.
WebCore
Handles all communications to the Desura API servers.
ScriptCore
Allows running of JavaScript files plus provides a standard API to access things such as file system.
ServiceCore
Handles installing of content and other tasks that require administration rights.
UtilCore
Handles misc tasks such as unistalling.
CrashUploader
Uploads crash dumps to the Desura servers.