Das Unternehmen KDAB hat die Entwicklung der Servo WebView-Komponente für Qt bekannt gegeben, die anstelle des Qt WebEngine-Moduls (basierend auf Chromium) die Servo-Browser-Engine zum Anzeigen von Webinhalten in QML-Anwendungen verwendet. Es wird erwartet, dass das Projekt dazu beitragen wird, die Angriffsfläche für Qt-Anwendungen, die die WebView-API nutzen, zu verringern, indem eine Komponente eingesetzt wird, bei der durch die Verwendung der Programmiersprache Rust die Entstehung von Sicherheitsanfälligkeiten, die durch Speicherfehler verursacht werden, minimiert wird. Der Code der Servo WebView für Qt wird unter der MPL-2.0-Lizenz verbreitet.
Für den Betrieb des in Rust geschriebenen Servo-Codes in einer C++-Umgebung wird die CXX-Qt-Schicht verwendet. CXX-Qt ermöglicht die Erstellung von Komponenten in Rust, die in C++-Programme integriert werden können, die Qt nutzen. Der Einsatz von CXX-Qt ermöglicht die Erstellung von QObject-Unterklassen in Rust, die in C++, QML und JavaScript verwendet werden können. Außerdem ist es möglich, Rust-Programme zu erstellen, die C++-Code aufrufen, für die Rust-Bindungen über die Typklassen QtCore und QtGui bereitgestellt werden.
Das Projekt Servo wurde ursprünglich von Mozilla entwickelt, ist aber anschließend unter den Schutz der Linux Foundation übergegangen. Die Engine zeichnet sich durch die Unterstützung von multithreaded Rendering von Webseiten, die Parallelisierung von DOM-Operationen (Document Object Model) und die Nutzung der von Rust bereitgestellten sicheren Programmiermechanismen aus. Zum Zeitpunkt der Gründung konnte die Firefox-Browser-Engine das Potenzial moderner Mehrkernsysteme aufgrund der Verwendung von Single-Thread-Schemata zur Verarbeitung von Inhalten nicht vollständig ausschöpfen. Servo wurde ursprünglich mit der Unterstützung für die Aufteilung von DOM-Code und Rendering in kleinere Teilaufgaben geschaffen, die parallel und effizienter auf Mehrkern-CPUs ausgeführt werden können. Einige Teile von Servo, wie der multithreaded CSS-Renderer und das WebRender-Zeichensystem, sind bereits in Firefox integriert.
Unter ähnlichen Entwicklungen wird auch das Tauri-Servo-Projekt hervorgehoben, das das Backend für die WRY-Bibliothek auf Basis der Servo-Engine entwickelt und die Verwendung von Servo in Anwendungen auf Basis des Tauri-Frameworks ermöglicht (eine konkurrierende Plattform zu Electron zur Erstellung von Desktopanwendungen mit Webtechnologien).
Quelle: opennet.ru
