Выпуск десктоп-движка Arcan 0.6.2

После года разработки опубликован релиз десктоп-движка Arcan 0.6.2, который объединяет в себе дисплейный сервер, мультимедийный фреймворк и игровой движок для обработки 3D-графики. Arcan может использоваться для создания различных графических систем, от пользовательских интерфейсов для встраиваемых приложений до самодостаточных десктоп-окружений. В том числе на базе Arcan развивается трёхмерный рабочий стол Safespaces для систем виртуальной реальности и десктоп-окружение Durden. Код проекта написан на языке Си и распространяется под лицензией BSD (некоторые компоненты под GPLv2+ и LGPL).

В новом выпуске продолжена разработка средств для удалённой работы с рабочим столом по сети. Доступ по сети обеспечивает графический сервер “arcan-net”, реализующий протокол A12, который объединяет в себе возможности таких технологий, как mDNS (определение локальных сервисов), SSH (интерактивная текстовая оболочка), X11/VNC/RDP (интерактивная графическая оболочка), RTSP (потоковая передача мильтимедийных данных) и HTTP (загрузка ресурсов и синхронизация состояния).

Arcan не привязан к отдельной графической подсистеме и может работать поверх различных системных окружений (BSD, Linux, macOS, Windows), используя подключаемые бэкенды. Например, имеется возможность запуска поверх Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлением дисплейного сервера Arcan могут выполняться клиентские приложения на базе X, Wayland и SDL2. В качестве ключевых критериев, применяемых при проектировании API Arcan называются безопасность, производительность и пригодность для отладки. Для упрощения разработки интерфейсов предлагается использовать язык Lua.

Особенности Arcan:

  • Сочетание ролей композитного сервера, дисплейного сервера и оконного менеджера.
  • Возможность работы в обособленном режиме, при котором приложение выступает в виде самодостаточного звена.
  • Встроенный мультимедийный фреймворк, предоставляющих средства работы с графикой, анимации, обработки потокового видео и звука, загрузки изображений, работы с устройствами захвата видео.
  • Мультипроцессная модель подключения обработчиков динамических источников данных – от видеопотоков до вывода отдельных программ.
  • Жесткая модель разделения привилегий. Компоненты движка разбиваются на небольшие непривилегированные процессы, взаимодействующие через интерфейс разделяемой памяти shmif;
  • Встроенные средства мониторинга и анализа крахов, в том числе движок может сериализировать внутреннее состояние Lua-скриптов для упрощения отладки;
  • Функция отката (Fallbacks), которая в случае сбоя из-за ошибки в программе может запустить запасное приложение, сохранив те же внешние источники данных и соединения;
  • Расширенные средства совместного доступа, которые можно использовать для записи или вещания отдельных подмножеств источников аудио и видео в процессе реализации совместного доступа к рабочему столу.
Release. Ссылка here.