KDAB (lyderis, teikiantis Qt, C++ ir 3D/OpenGL programinės įrangos patirtį staliniuose kompiuteriuose, įterptosiose ir mobiliosiose platformose) paskelbė neseniai per savo tinklaraštį, „Servo WebView for Qt“ išleidimas. Šis naujas įrankis naudoti variklį naršyklė Servo vietoj „Chromium“ pagrįsto „Qt WebEngine“ modulio, siūlanti alternatyvą žiniatinklio turiniui rodyti QML programose.
Servo yra projektas iš pradžių sukūrė „Mozilla“, o dabar vadovauja „Linux Foundation“, jis išsiskiria tuo, kad yra a žiniatinklio atvaizdavimo variklis, parašytas Rust, orientuota į atminties saugumą ir efektyvų šiuolaikinių daugiagyslių sistemų naudojimą.
Tarp jo savybių žymiausi yra irl tinklalapių atvaizdavimo daugiagija palaikymas, operacijų lygiagretinimas su DOM ir Rust teikiamų saugaus programavimo mechanizmų naudojimas. Skirtingai nuo „Firefox“ naršyklės variklio, kuriame naudojamos vienos gijos turinio apdorojimo schemos, „Servo“ yra specialiai sukurtas taip, kad išnaudotų šiuolaikinių kelių branduolių sistemas, išskaidydamas DOM ir vykdydamas papildomas užduotis, taip optimizuodamas kelių procesoriaus branduolių naudojimą. „Mozilla“ į „Firefox“ integravo „Servo“ dalis, pvz., kelių gijų CSS variklį ir „WebRender“ atvaizdavimo sistemą.
Apie Servo WebView Qt
Integracija Servo WebView Qt programose siekia pagerinti našumą ir pasiūlyti didesnį efektyvumą, Ši integracija taip pat labai prisideda prie Qt programų saugumo. Servo integravimas į Qt pasiekiamas per CXX-Qt sluoksnį, kuris veikia kaip tiltas tarp Rust ir C++. Šis sluoksnis leidžia kurti Rust komponentus, kurie sklandžiai integruojasi su C++ programomis naudojant Qt. Tai atveria naujas Qt programų kūrimo galimybes, daugiausia dėmesio skiriant saugumui ir žiniatinklio rodymo našumui.
KDAB pavyko integruoti „Servo“ žiniatinklio variklį į Qt, naudodami mūsų CXX-Qt biblioteką kaip tiltą tarp Rust ir C++. Tai reiškia, kad dabar galime naudoti „Servo“ kaip „Chromium“ alternatyvą žiniatinklio peržiūroms Qt programose.
QML požiūriu šis komponentas yra panašus į „Chromium WebView“, nes „canGoBack“ teikia ypatybes ir metodus. Pats QML elementas veikia taip pat, o turinys pateikiamas taip, kad atitiktų jo dydį
Skelbime minima, kad sTikimasi, kad vienas didžiausių „Servo WebView“ privalumų bus galimybė sumažinti atakos paviršių Qt programose. kurie naudoja WebView API, nes naudojama Rust kalba, kuri sumažina pažeidžiamumą, susijusį su atminties valdymo klaidomis.
Be to, minima ir tai Integracija suteikia daug privalumų, įskaitant:
- Didesnis saugumas: Parašyta „Rust“ kalba, „Servo“ sumažina atakos paviršių ir sumažina pažeidžiamumą, susijusį su atminties valdymu, taip prisidedant prie saugesnės Qt programų naudotojų naršymo internete.
- Geresnis našumas: Servo dėmesys lygiagrečiam ir efektyviam kelių branduolių procesoriaus išteklių naudojimui pagerina žiniatinklio peržiūros našumą Qt programose, užtikrindamas sklandesnę ir greitesnę patirtį.
- Lankstumas ir mastelio keitimas: Servo integravimas į Qt per CXX-Qt suteikia lanksčią ir keičiamo dydžio žiniatinklio taikomųjų programų kūrimo platformą, atveriančias naujas galimybes turiniu ir funkcijomis turtingoms programoms.
Kalbant apie ateities plėtros ir tobulinimo planus, Integracija minima atliekant papildomus tyrimus ir patobulinimus tilte tarp Rust ir Qt, patobulinus įterptųjų sistemų API, patobulinus kadrų buferio objektą, kuris, be kita ko, verčia naudoti OpenGL backend.
Galiausiai reikėtų paminėti tai Servo WebView kodas, skirtas Qt, yra licencijuotas pagal MPL-2.0 ir jei jus domina galimybė apie tai sužinoti daugiau, galite pasikonsultuoti su išsamia informacija Šioje nuorodoje.