Het bedrijf KDAB heeft de ontwikkeling aangekondigd van de Servo WebView-component voor Qt, die de browserengine Servo gebruikt in plaats van de Qt WebEngine-module (gebaseerd op Chromium) voor het weergeven van webinhoud in QML-applicaties. Verwacht wordt dat het project zal helpen de aanvalsoppervlakte van Qt-applicaties die de WebView-API gebruiken, te verkleinen door het gebruik van een component waarin door de programmeertaal Rust het ontstaan van kwetsbaarheden, veroorzaakt door geheugenfouten, geminimaliseerd is. De code van Servo WebView voor Qt wordt verspreid onder de MPL-2.0-licentie.
Voor de werking van de Servo-code, geschreven in de programmeertaal Rust, in een C++-omgeving wordt de CXX-Qt-laag gebruikt. CXX-Qt maakt het mogelijk om componenten in Rust te creëren die geïntegreerd kunnen worden met programma's in C++, die Qt gebruiken. Het toepassen van CXX-Qt biedt de mogelijkheid om QObject-subklassen in Rust te maken, die gebruikt kunnen worden in C++, QML en JavaScript. Daarnaast is het mogelijk om Rust-programma's te creëren die C++-code aanroepen, waarvoor Rust-bindings bovenop de basisclasses QtCore en QtGui worden aangeboden.
Het Servo-project is oorspronkelijk ontwikkeld door Mozilla, maar is later overgeheveld naar de Linux Foundation. De engine onderscheidt zich door ondersteuning van multithreaded rendering van webpagina's, het parallel verwerken van DOM (Document Object Model)-bewerkingen en het gebruik van door de programmeertaal Rust geboden mechanismen voor veilig programmeren. Bij de oprichting van Servo kon de Firefox-browserengine niet volledig profiteren van de mogelijkheden van moderne multicore-systemen vanwege het gebruik van een eenzijdig ontwerp voor inhoudsverwerking. Servo is oorspronkelijk ontworpen met ondersteuning voor het splitsen van DOM-code en rendering in kleinere subtaken die parallel kunnen worden uitgevoerd en de middelen van multicore CPU's efficiënter kunnen benutten. In Firefox zijn al enkele onderdelen van Servo geïntegreerd, zoals de multithreaded CSS-engine en het WebRender-renderingsysteem.
Vanuit vergelijkbare ontwikkelingen verdient ook het Tauri-Servo-project opmerkzaamheid, dat de backend van de WRY-bibliotheek ontwikkelt op basis van de Servo-engine, waarmee Servo kan worden gebruikt in applicaties die zijn opgebouwd op het Tauri-framework (een concurrent van Electron-plattform voor het maken van desktopapplicaties met browsertechnologieƫn).
Bron: opennet.ru
