After a year of development, the Arcan 0.7 desktop engine has been released, combining a display server, multimedia framework, and a game engine for processing 3D graphics. Arcan can be used to create various graphical systems—from user interfaces for embedded applications to self-contained desktop environments. Among other things, the three-dimensional desktop Safespaces for virtual reality systems and the desktop environment Durden are based on Arcan. The project's code is written in C and is distributed under a BSD license (some components under GPLv2+ and LGPL).
Arcan is not tied to specific graphics subsystems and can run on various system environments (BSD, Linux, macOS, Windows), using plug-in backends. For instance, it can operate on top of Xorg, egl-dri, libsdl, and AGP (GL/GLES). Under the display server, server client applications based on X11, Wayland, and SDL2 can run on Arcan. Key criteria considered in the design of the Arcan API include security, performance, and suitability for debugging. For simplifying interface development, it is recommended to use the Lua programming language.
Features of Arcan:
- A blend of composite server, display server, and window manager capabilities.
- Support for isolated mode, where the application acts as a self-contained unit.
- An integrated multimedia framework that provides tools for graphics, video and audio streaming, animation, image loading, and working with video capture devices.
- A multiprocess model for connecting data source handlers (e.g., video streams and outputs of running programs).
- A strict privilege separation model—engine components are broken down into small unprivileged processes that interact through the Shmif shared memory interface.
- Built-in monitoring tools and analysis for process crashes, for instance, the engine can serialize the internal state of Lua scripts to facilitate debugging.
- Fallback capability to another handler—in case of failure due to a program error, the engine can launch a backup application while maintaining the same external data sources and connections.
- Tools for remote desktop access and sharing. Network access provides graphical server «arcan-net», implementing the P2P protocol A12, combines the capabilities of such technologies as mDNS (local service discovery), SSH (interactive text shell), X11/VNC/RDP (interactive graphical interface), RTSP (streaming multimedia) and HTTP (resource loading and state synchronization).
The new version continues work on the network subsystem and the A12 protocol. The capabilities of the directory server, developed for linking a stack of components distributed across the network, have been expanded; for example, it can be used to connect to the desktops of external devices such as storage, cameras, and screens. The Xarcan X server now supports launching third-party window managers. When launched in this way, Xarcan assumes the low-level tasks of screen management, security, and configuration control, while the window manager takes care of processing and decorating windows (video with an example).

The capabilities of Lash, a scripting environment based on the Lua language, and the command shell Cat9, built on it, have been expanded, providing the ability to bind command execution to individual cells that form a structure resembling a spreadsheet (video with demonstration). The proposed concept allows the redirection of data streams between windows, linking data and handlers across different windows similar to cells in spreadsheets (for instance, output can be redirected from one window to a shell handler running in a terminal and used in another window).

Source: opennet.ru
