Po roku prac rozwojowych opublikowano wersję desktopowego silnika Arcan 0.6.2, który łączy w sobie serwer wyświetlający, framework multimedialny oraz silnik gier do przetwarzania grafiki 3D. Arcan może być wykorzystywany do tworzenia różnych systemów graficznych, od interfejsów użytkownika dla wbudowanych aplikacji po samowystarczające środowiska desktopowe. W tym także na bazie Arcan rozwijany jest trójwymiarowy pulpit Safespaces dla systemów wirtualnej rzeczywistości oraz środowisko desktopowe Durden. Kod projektu napisano w języku C i jest rozpowszechniany na licencji BSD (niektóre komponenty na GPLv2+ i LGPL).
W nowym wydaniu kontynuowana jest praca nad narzędziami do zdalnej pracy z pulpitem przez sieć. Dostęp przez sieć zapewnia graficzny serwer „arcan-net”, który realizuje protokół A12, łączący możliwości takich technologii, jak mDNS (okrywanie lokalnych usług), SSH (interaktywna powłoka tekstowa), X11/VNC/RDP (interaktywna powłoka graficzna), RTSP (streaming multimedialny) oraz HTTP (pobieranie zasobów i synchronizacja stanu).
Arcan nie jest powiązany z konkretnym podsystemem graficznym i może działać na różnych środowiskach systemowych (BSD, Linux, macOS, Windows), używając podłączanych backendów. Na przykład, istnieje możliwość uruchomienia na Xorg, egl-dri, libsdl oraz AGP (GL/GLES). Pod zarządem wyświetlacza serwera Arcan mogą działać aplikacje klienckie oparte na X, Wayland oraz SDL2. Kluczowe kryteria stosowane podczas projektowania API Arcan to bezpieczeństwo, wydajność i przydatność do debugowania. W celu uproszczenia tworzenia interfejsów zaleca się użycie języka Lua.
Cechy Arcana:
- Połączenie ról kompozytowego serwera, serwera wyświetlającego i menedżera okien.
- Możliwość pracy w wydzielonym trybie, w którym aplikacja działa jako samowystarczający element.
- Wbudowany framework multimedialny, oferujący narzędzia do pracy z grafiką, animacją, przetwarzania strumieniowego wideo i dźwięku, ładowania obrazów oraz pracy z urządzeniami do przechwytywania wideo.
- Model wieloprocesowy do łączenia obsługiwaczy dynamicznych źródeł danych — od strumieni wideo po wyjścia z indywidualnych programów.
- Sztywna model podziału uprawnień. Komponenty silnika są dzielone na małe, nieuprzywilejowane procesy, które komunikują się za pomocą interfejsu pamięci dzielonej shmif;
- Wbudowane narzędzia do monitorowania i analizy awarii, w tym silnik może serializować wewnętrzny stan skryptów Lua w celu ułatwienia debugowania;
- Funkcja awaryjna (Fallbacks), która w przypadku awarii z powodu błędu w programie może uruchomić zapasową aplikację, zachowując te same zewnętrzne źródła danych i połączenia;
- Zaawansowane narzędzia do współdzielenia, które można wykorzystać do nagrywania lub przesyłania pojedynczych podzbiorów źródeł audio i wideo w trakcie realizacji współdzielenia pulpitu.
Źródło: opennet.ru
