Firma KDAB ogłosiła rozwój komponentu Servo WebView dla Qt, który wykorzystuje silnik przeglądarki Servo zamiast modułu Qt WebEngine (opartego na Chromium) do wyświetlania treści web w aplikacjach QML. Projekt ma na celu zmniejszenie powierzchni ataku na aplikacje Qt korzystające z API WebView, dzięki zastosowaniu komponentu, w którym dzięki językowi Rust zminimalizowano pojawianie się luk bezpieczeństwa spowodowanych błędami w zarządzaniu pamięcią. Kod Servo WebView dla Qt jest dystrybuowany na licencji MPL-2.0.
Aby zorganizować działanie kodu Servo, napisanego w języku Rust, w środowisku C++, zastosowano warstwę CXX-Qt. CXX-Qt umożliwia tworzenie komponentów w języku Rust, które są integrowane z programami w C++ wykorzystującymi Qt. Użycie CXX-Qt pozwala na tworzenie podklas QObject w Rust, które mogą być używane w kodzie w C++, QML i JavaScript. Istnieje również możliwość tworzenia programów Rust, które wywołują kody w C++, dla których dostarczane są powiązania Rust z typowymi klasami QtCore i QtGui.
Projekt Servo pierwotnie rozwijany był przez firmę Mozilla, ale później przeszedł pod skrzydła organizacji Linux Foundation. Silnik wyróżnia się wsparciem dla wielowątkowego renderowania stron web, równoległym wykonaniem operacji na DOM (Document Object Model) i wykorzystaniem mechanizmów bezpiecznego programowania oferowanych przez język Rust. W momencie powstania, silnik przeglądarki Firefox nie mógł w pełni wykorzystać potencjału nowoczesnych systemów wielordzeniowych z powodu użycia jednowątkowych schematów przetwarzania treści. Servo zostało pierwotnie zaprojektowane z myślą o rozdzieleniu DOM i renderowaniu na mniejsze podzadania, które mogą być wykonywane równolegle i efektywniej wykorzystywać zasoby wielordzeniowych CPU. Niektóre elementy Servo, takie jak wielowątkowy silnik CSS i system renderowania WebRender, są już zintegrowane z Firefox.
Wśród podobnych projektów warto również wspomnieć o projekcie Tauri-Servo, rozwijającym backend do biblioteki WRY na podstawie silnika Servo, umożliwiającym użycie Servo w aplikacjach opartych na frameworku Tauri (konkurencyjnej w stosunku do Electron platformie do tworzenia aplikacji użytkowych przy użyciu technologii webowych).
Źródło: opennet.ru
