После года разработки опубликован релиз десктоп-движка Arcan 0.7, который объединяет в себе дисплейный сервер, мультимедийный фреймворк и игровой движок для обработки 3D-графики. Arcan может использоваться для создания различных графических систем – от пользовательских интерфейсов для встраиваемых приложений до самодостаточных десктоп-окружений. Среди прочего, на основе Arcan построены трёхмерный рабочий стол Safespaces для систем виртуальной реальности и десктоп-окружение Durden. Код проекта написан на языке Си и распространяется под лицензией BSD (некоторые компоненты под GPLv2+ и LGPL).
Arcan не привязан к отдельным графическим подсистемам и может работать поверх различных системных окружений (BSD, Linux, macOS, Windows), используя подключаемые бэкенды. Например, имеется возможность запуска поверх Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлением дисплейного сервера Arcan могут выполняться клиентские приложения на базе X11, Wayland и SDL2. В качестве ключевых критериев, применяемых при проектировании API Arcan, упоминаются безопасность, производительность и пригодность для отладки. Для упрощения разработки интерфейсов предлагается использовать язык Lua.
Особенности Arcan:
- Сочетание возможностей композитного сервера, дисплейного сервера и оконного менеджера.
- Поддержка работы в обособленном режиме, при котором приложение является самодостаточным звеном.
- Встроенный мультимедийный фреймворк, предоставляющих средства для работы с графикой, обработки потокового видео и звука, анимации, загрузки изображений, работы с устройствами захвата видео.
- Многопроцессная модель подключения обработчиков источников данных (например, видеопотоков и вывода запущенных программ).
- Жёсткая модель разделения привилегий – компоненты движка разбиваются на небольшие непривилегированные процессы, взаимодействующие через интерфейс разделяемой памяти Shmif.
- Встроенные средства мониторинга и анализа аварийных завершений работы, например, движок может сериализировать внутреннее состояние Lua-скриптов для упрощения отладки.
- Возможность отката (Fallbacks) на другой обработчик – в случае сбоя из-за ошибки в программе движок может запустить запасное приложение, сохранив те же внешние источники данных и соединения.
- Средства для совместного доступа и удалённого подключения к рабочему столу. Доступ по сети обеспечивает графический сервер “arcan-net”, реализующий P2P-протокол A12, объединяющий возможности таких технологий, как mDNS (определение локальных сервисов), SSH (интерактивная текстовая оболочка), X11/VNC/RDP (интерактивная графическая оболочка), RTSP (потоковая передача мультимедийных данных) и HTTP (загрузка ресурсов и синхронизация состояния).
В новой версии продолжена работа над сетевой подсистемой и протоколом A12. Расширены возможности сервера каталогов, развиваемого для связывания в один стек компонентов, разнесённых по сети, например, его можно использовать для подключение к рабочему столу внешних устройств, таких как хранилища, камеры и экраны. В X-сервер Xarcan добавлена поддержка запуска сторонних оконных менеджеров, при
этом Xarcan берёт на себя функции низкоуровневой работы с экраном, обеспечения безопасности и управления конфигурацией, а оконный менеджер отвечает за обработку и декорирование окон (видео с примером).
Расширены возможности Lash, среды для выполнения скриптов на языке Lua, и построенной на её основе командной оболочки Cat9, предоставляющей возможность привязки выполнения команд к отдельным ячейкам, формирующим подобие электронной таблицы (видео с демонстрацией). Предложенная концепция позволяет перенаправлять потоки данных между окнами, связывая данные и обработчики в разных окнах по аналогии с ячейками в электронных таблицах (например, можно перенаправить вывод из одного окна в запущенный в терминале shell-обработчик и использовать результат в другом окне).