Po roku pracy opublikowano wydanie silnika desktopowego Arcan 0.7, który łączy w sobie serwer wyświetlania, framework multimedialny i silnik gier do przetwarzania grafiki 3D. Arcan może być używany do tworzenia różnych systemów graficznych — od interfejsów użytkownika dla aplikacji wbudowanych po samodzielne środowiska desktopowe. Między innymi na bazie Arcana stworzono trójwymiarowy pulpit Safespaces dla systemów wirtualnej rzeczywistości oraz środowisko desktopowe Durden. Kod projektu napisany jest w języku C i jest dystrybuowany na licencji BSD (niektóre komponenty na licencji GPLv2+ i LGPL).
Arcan nie jest uzależniony od konkretnych systemów graficznych i może działać na różnych środowiskach systemowych (BSD, Linux, macOS, Windows), korzystając z podłączanych backendów. Na przykład, istnieje możliwość uruchomienia na Xorg, egl-dri, libsdl oraz AGP (GL/GLES). Pod kontrolą wyświetlacza serwera Na Arcan mogą działać aplikacje klienckie oparte na X11, Wayland i SDL2. Kluczowe kryteria stosowane przy projektowaniu API Arcana obejmują bezpieczeństwo, wydajność i przydatność do debugowania. Aby uprościć rozwój interfejsów, proponuje się użycie języka Lua.
Cechy Arcana:
- Połączenie możliwości serwera kompozytowego, serwera wyświetlania i menedżera okien.
- Wsparcie dla trybu izolowanego, w którym aplikacja jest samodzielnym elementem.
- Wbudowany framework multimedialny, dostarczający narzędzia do pracy z grafiką, przetwarzania strumieniowego wideo i dźwięku, animacji, ładowania obrazów oraz pracy z urządzeniami przechwytywania wideo.
- Model wykorzystujący wiele procesów do łączenia obsługujących źródeł danych (np. strumieni wideo i wyjścia uruchomionych programów).
- Ścisły model podziału przywilejów — komponenty silnika dzielą się na małe, nieuprzywilejowane procesy, które współdziałają poprzez interfejs pamięci dzielonej Shmif.
- Wbudowane narzędzia do monitorowania i analizy awaryjnych zakończeń pracy procesów, na przykład silnik może serializować wewnętrzny stan skryptów Lua w celu uproszczenia debugowania.
- Możliwość przywrócenia (Fallbacks) do innego przetwarzającego — w przypadku awarii z powodu błędu w programie silnik może uruchomić zapasową aplikację, zachowując te same zewnętrzne źródła danych i połączenia.
- Narzędzia do zdalnego dostępu i połączeń z pulpitem. Dostęp w sieci zapewnia graficzny serwer „arcan-net”, realizujący protokół P2P A12, łączący możliwości takich technologii, jak mDNS (określanie lokalnych usług), SSH (interaktywna powłoka tekstowa), X11/VNC/RDP (interaktywna powłoka graficzna), RTSP (strumieniowe przesyłanie multimediów) i HTTP (pobieranie zasobów i synchronizacja stanu).
W nowej wersji kontynuowana jest praca nad systemem sieciowym i protokołem A12. Rozszerzono możliwości serwera katalogów, rozwijanego w celu łączenia w jeden stos komponentów rozproszonych w sieci, na przykład można go używać do łączenia z pulpitem zewnętrznych urządzeń, takich jak pamięci masowe, kamery i ekrany. W serwerze X Xarcan dodano wsparcie dla uruchamiania zewnętrznych menedżerów okien. W takim przypadku Xarcan przejmuje funkcje niskopoziomowego zarządzania ekranem, zapewnienia bezpieczeństwa i zarządzania konfiguracją, podczas gdy menedżer okien odpowiada za przetwarzanie i dekorowanie okien (wideo z przykładem).

Rozszerzone możliwości Lash, środowiska do wykonywania skryptów w języku Lua, oraz zbudowanej na jej podstawie powłoki Cat9, która umożliwia powiązanie wykonywania poleceń z poszczególnymi komórkami, tworzącymi coś na kształt arkusza kalkulacyjnego (wideo z demonstracją). Proponowana koncepcja pozwala na przekierowywanie strumieni danych między oknami, wiążąc dane i przetwarzające je w różnych oknach na podobieństwo komórek w arkuszach kalkulacyjnych (na przykład można przekierować wyjście z jednego okna do uruchomionego w terminalu przetwarzającego powłokę i wykorzystać wynik w innym oknie).

Źródło: opennet.ru
