After a year of development, the release of the Arcan Desktop Engine 0.6.2 has been published, which combines a display server, multimedia framework, and game engine for processing 3D graphics. Arcan can be used to create various graphical systems, from user interfaces for embedded applications to standalone desktop environments. Notably, the threedimensional desktop Safespaces for virtual reality systems and the Durden desktop environment are based on Arcan. The project code is written in C and is distributed under the BSD license (some components under GPLv2+ and LGPL).
The new release continues the development of tools for remote desktop access over the network. Network access is provided by the graphics server "arcan-net", which implements the A12 protocol, combining the functionalities of technologies such as mDNS (local service discovery), SSH (interactive text shell), X11/VNC/RDP (interactive graphical shell), RTSP (streaming multimedia data), and HTTP (resource downloading and state synchronization).
Arcan is not tied to a specific graphics subsystem and can work over various system environments (BSD, Linux, macOS, Windows), using pluggable backends. For example, it can run on top of Xorg, egl-dri, libsdl, and AGP (GL/GLES). Client applications based on X, Wayland, and SDL2 can run under the display management of Arcan. Key criteria applied in the design of the Arcan API include security, performance, and debuggability. Lua is suggested as the language for simplifying interface development. server Combines the roles of a composite server, display server, and window manager.
Features of Arcan:
- Functionality to operate in an isolated mode where the application acts as a standalone component.
- Built-in multimedia framework providing tools for graphics, animations, streaming video and audio processing, image downloading, and working with video capture devices.
- Multiprocessing model for connecting handlers of dynamic data sources - from video streams to individual program outputs.
- Multiprocessing model for connecting handlers of dynamic data sources — from video streams to outputs of individual programs.
- A strict model of privilege separation. The engine components are divided into small unprivileged processes that interact through the shmif shared memory interface;
- Built-in monitoring and crash analysis tools, including the engine's ability to serialize the internal state of Lua scripts for easier debugging;
- A fallback feature that can launch a backup application in case of a failure due to a programming error, while preserving the same external data sources and connections;
- Advanced shared access tools that can be used to record or broadcast individual subsets of audio and video sources during the implementation of desktop sharing.
Source: opennet.ru
