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.