Libraries
Libraries are NightOS' way to share code between multiple applications.
Manifest
As libaries are only meant to share code, there manifest is a lot more simple than the applications' one as it is only made of the common fields.
The system library
The system provides a single system library with the sys::lib
AID, which is built in the system and not removable. Apart from these points, it acts like a standard library. Its version is identical to the system itself, allowing applications and libraries to specify a minimum system version in their dependencies field.
System library modules
The library contains several modules (called SLM for System Library Module), which act like language namespaces to expose specific features:
fs
: Filesystem managementnet
: Network communicationsipm
: Inter-process management (create processes, workers, IPC, shared memory, ...)gui
: Graphical user interface library (relies ondesktop
)apps
: Applications management (installation, removal, ...)perm
: Permissions controllerhydre
: Shell interface (run commands, ...)input
: Input interface (keyboard, mouse, microphone, ...)sound
: Sound interfacesystem
: System interface (low-level changes, updates, ...)sandbox
: Sandboxes management (run applications in sandboxes, ...)desktop
: Desktop management (desktop, windows, notifications, ...)hardware
: Hardware management (drivers and devices)i18n
: Translations
System applications' libraries
Each system application also exposes a library with the sysl::<app name lowercased>
AID which applications can rely on, as these applications are not removable. These are abbreviated SAL for System Application Library.