Проект за интеграция с Qt уеб двигателя Servo, разработван на езика Rust

Компания KDAB обяви разработката на компонента Servo WebView за Qt, който използва браузерен двигател Servo вместо модула Qt WebEngine (на база Chromium) за показване на уеб съдържание в QML приложения. Предполага се, че проектът ще помогне за намаляване на повърхността на нападенията върху Qt приложенията, използващи APIs WebView, благодарение на компонента, при който, благодарение на езика Rust, е минимизирана вероятността за уязвимости, причинени от грешки в работата с паметта. Кодът на Servo WebView за Qt се разпространява под лицензия MPL-2.0.

За организиране на работата на кода на Servo, написан на езика Rust, в среда на езика C++, е използвана прослойка CXX-Qt. CXX-Qt позволява създаването на компоненти на Rust, които се интегрират с програми на C++, използващи Qt. Приложението на CXX-Qt дава възможност за създаване на подсистеми QObject на Rust, които могат да бъдат използвани в код на C++, QML и JavaScript. Също така, е възможно създаването на Rust програми, извикващи код на C++, за което се предоставят Rust обвивки над типовите класове QtCore и QtGui.

Проектът Servo първоначално е развиван от компанията Mozilla, но след това премина под покровителството на организацията Linux Foundation. Двигателят се отличава с поддръжка на многопоточен рендеринг на уеб страници, паралелизация на операциите с DOM (Document Object Model) и използване на предоставените от езика Rust механизми за безопасно програмиране. При основаването на Servo браузерният двигател Firefox не можеше напълно да използва потенциала на съвременните многопроцесорни системи поради използването на еднопоточни схеми за обработка на съдържанието. Servo е създаден с поддръжка за разпределяне на кода на DOM и рендеринг на по-малки подзадачи, които могат да се извършват паралелно и по-ефективно да използват ресурсите на многопоточните CPU. В Firefox вече са интегрирани някои части от Servo, като многопоточният CSS двигател и системата за рендеринг WebRender.

От близките по тематика разработки също се отбелязва проектът Tauri-Servo, който развива бекенда към библиотеката WRY на база движка Servo, позволяваща използването на Servo в приложения, основани на фреймуорка Tauri (конкурираща се с Electron платформа за създаване на потребителски приложения с използване на браузерни технологии).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster