Andreas Kling, a Ladybird web böngésző alapítója bejelentette, hogy Rust nyelvet használnak a projekt fejlesztésében, és elindult a Ladybird egyes részeinek átkonvertálása erre a nyelvre. Kísérletképpen a C++-ról Rust-ra már átírták a LibJS JavaScript-motort. A LibJS-t a tesztlefedettsége miatt választották, ami megkönnyíti a portolás minőségének értékelését.
A portolás felgyorsítása érdekében az AI-asszisztensek, Claude Code és OpenAI Codex kerültek bevonásra, így a kódot mindössze két hét alatt sikerült átírni. A fordítás fokozatosan zajlott, a fejlesztő részvételével, aki a munka során több száz promptot küldött az AI-asszisztenseknek, meghatározva, hogy milyen sorrendben és mit kell portolni, valamint pontosítva a Rust nyelvű kódra vonatkozó követelményeket. Az AI-modellek által kapott kód után a kapott eredményeket átnézték, és a kódot hibák és kérdéses megoldások szempontjából kiértékelték.
Ennek eredményeként a Rust-ra átírt motor sikeresen teljesítette az ECMAScript test262 tesztcsomag 52,898 kompatibilitási tesztjét és a Ladybird projekt 12,461 regresziós tesztjét. A Rust változat teljesen megegyezett a C++-os változat által generált AST-vel és bytecode-dal; eddig nem találtak regressziót. A JavaScript tesztek során sem mutatkozott teljesítménycsökkenés. Továbbá, a teljes egyezőség a weboldal feldolgozási eredmények összehasonlító tesztelése során is megmutatkozott, amikor a LibJS C++ és Rust változatait hasonlították össze.
A böngésző alkotóelemeinek Rust-ra átírását másodlagos projekteként kezelik, amely sok időt igényelhet. A fő fejlesztés egyelőre C++ nyelven folytatódik. A Rust-ra átírandó alrendszerekről a fő fejlesztőcsapat fog dönteni. Az új Rust kód a meglévő C++ kód mellett fog működni, világosan meghatározott interoperabilitási szintek révén.
Figyelemre méltó, hogy 2024-ben a Ladybird fejlesztői a Swift programozási nyelvet választották, de azt tapasztalták, hogy a C++-val való interoperabilitás elégtelen, és a nem Apple platformok korlátozott támogatásban részesülnek. Ami a Rust-ot illeti, ennek a nyelvnek érettebb ökoszisztémája van a rendszerprogramozáshoz és a biztonsági garanciákhoz. Ezen túlmenően, a Ladybird fejlesztői között sokan ismerik ezt a nyelvet. 2024-re a Rust nyelvet nem hagyták jóvá a Ladybird használatára, mivel a tulajdonon alapuló fejlesztési paradigma nem igazán kompatibilis a C++ objektumorientált stílusával.
Andreas Kling egykor a Nokia cégnél dolgozott, a KHTML fejlesztésén dolgozott, majd az Apple-nél a Safari egyik fejlesztője volt. A Ladybird projektet eredetileg a SerenityOS operációs rendszer alkalmazásaként hozták létre, de 2024 nyarán külön projektté vált, és 1 millió dolláros adományt kapott. A böngésző C++-ban van megírva és BSD licenc alatt terjesztik. A projekt a saját LibWeb motorját, LibJS JavaScript értelmezőjét és kapcsolódó könyvtárait fejleszti.
Forrás: opennet.ru
