KDAB представив Servo WebView для Qt

Servo Web Engine у ​​Qt

Servo Web Engine у ​​Qt

КДАБ (лідер у наданні досвіду програмного забезпечення Qt, C++ і 3D/OpenGL на настільних, вбудованих і мобільних платформах) оголосив нещодавно через свій блог, випуск «Servo WebView для Qt». Цей новий інструмент використовувати двигун браузер Servo замість модуля Qt WebEngine на основі Chromium, пропонуючи альтернативу для відображення веб-вмісту в програмах QML.

Servo - це проект спочатку розроблений Mozilla, а тепер під керівництвом Linux Foundation, він виділяється тим, що є a механізм веб-рендерінгу, написаний мовою Rust, зосереджений на безпеці пам'яті та ефективному використанні сучасних багатоядерних систем.

Серед його особливостей найбільш помітними є іl підтримка багатопоточної візуалізації веб-сторінок, розпаралелення операцій з DOM і використання безпечних механізмів програмування, наданих Rust. На відміну від двигуна браузера Firefox, який використовує однопотокові схеми обробки вмісту, Servo спеціально розроблено для використання переваг сучасних багатоядерних систем шляхом розділення DOM і виконання підзавдань паралельно, таким чином оптимізуючи використання кількох ядер ЦП. Mozilla інтегрувала частини Servo у Firefox, такі як багатопоточний движок CSS і систему візуалізації WebRender.

Про Servo WebView Qt

Інтеграція Servo WebView у програмах Qt має на меті покращити продуктивність і запропонувати більшу ефективність, Ця інтеграція також значно сприяє безпеці програм Qt. Інтеграція Servo в Qt досягається через рівень CXX-Qt, який діє як міст між Rust і C++. Цей рівень дозволяє створювати компоненти Rust, які легко інтегруються з програмами C++ за допомогою Qt. Це відкриває нові можливості для розробки додатків Qt з акцентом на безпеку та продуктивність веб-відображення.

У KDAB нам вдалося інтегрувати веб-движок Servo в Qt, використовуючи нашу бібліотеку CXX-Qt як міст між Rust і C++. Це означає, що тепер ми можемо використовувати Servo як альтернативу Chromium для веб-переглядів у програмах Qt.

З точки зору QML, цей компонент схожий на Chromium WebView, оскільки canGoBack надає властивості та методи. Сам елемент QML діє так само, і вміст відображається відповідно до його розміру canGoForwardloadingtitleurlgoBackgoForward

В оголошенні зазначено, що сОчікується, що однією з найбільших переваг Servo WebView буде здатність зменшити поверхню атаки в програмах Qt. які використовують API WebView, завдяки використанню мови Rust, яка мінімізує появу вразливостей, пов’язаних із помилками керування пам’яттю.

Крім цього, зазначається також, що Інтеграція пропонує низку переваг, в тому числі:

  1. Більша безпека: Будучи написаним на Rust, Servo зменшує поверхню атаки та мінімізує вразливості, пов’язані з керуванням пам’яттю, сприяючи більш безпечному веб-перегляду для користувачів програм Qt.
  2. Краща продуктивність: Зосередження Servo на розпаралелюванні та ефективному використанні ресурсів багатоядерного ЦП покращує продуктивність перегляду веб-сторінок у програмах Qt, забезпечуючи плавнішу та оперативнішу роботу.
  3. Гнучкість і масштабованість: Інтеграція Servo в Qt через CXX-Qt забезпечує гнучку та масштабовану платформу для розробки веб-додатків, відкриваючи нові можливості для додатків із багатим вмістом і функціями.

Щодо планів майбутнього розвитку та вдосконалення, Інтеграція згадується для додаткових досліджень і покращень у мосту між Rust і Qt, покращенням API для вбудованих систем, покращенням об’єкта кадрового буфера, який змушує використовувати серверну частину OpenGL, серед іншого.

Нарешті, слід зазначити, що Код Servo WebView для Qt ліцензовано згідно з MPL-2.0 і якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями У наступному посиланні.