According to Agama's architecture this project implements the following components:
- The Agama server, excluding Agama YaST which lives in the service directory.
- The Agama D-Bus service.
- The Command Line Interface.
We have set up Cargo workspace with three packages:
- agama-lib: code that can be reused to access the Agama D-Bus API and a model for the configuration settings.
- agama-cli: code specific to the command-line interface.
- agama-settings and agama-derive: includes a procedural macro to reduce the boilerplate code.
- agama-locale-data: specific library to provide data for localization D-Bus API
- agama-server: implements the HTTP/JSON (and WebSocket) API. Additionally, it offers a minimal D-Bus API for internal communication.