Eksperimentaalse brauseri Ladybird arendajad on teatanud, et kavatsevad kasutada programmeerimiskeelt Swift oma projekti põhikeelena. Swift koodi kasutuselevõtt on planeeritud sügisel, pärast Swift 6 versiooni väljalaskmist (Swift 5 haru kasutamine on takistatud, kuna see on seotud vana Clangi versiooniga, mis pole ühilduv Ladybirdi praeguse C++ koodibaasiga). C++ ja Swifti kooskasutamise võimaluse tõttu toimub Swifti integreerimine järk-järgult, ilma olemasoleva koodi ümberkirjutamiseta.
Swifti valiku taga on mitmed eelised, sealhulgas mälu turvaline käsitlemine, kilpailuolukordadest kaitsmine, kaasaegne süntaks ja ergonoomika. Ladybirdi meeskonnale on olulise tähendusega Swifti objektorienteeritud iseloom, mis võimaldab täpsemalt modelleerida veebispetsifikatsioone ja brauseri sisekomponente. Arendajad on samuti täheldanud Swifti paranevat tuge mitte-Apple platvormide jaoks ja aktiivset tööd C++ ühilduvuse nimel, mis avab tee järkjärgulisele keele integreerimisele projektis. Kuigi Swiftil on ajaloolised sidemed Apple'iga, muutub keel üha enam sõltumatuks, mida tõendab näiteks tema hoidla üleviimine eraldi organisatsiooni GitHubis.
Andreas Kling, Ladybird projekti asutaja, jagas oma mõtteid Rusti üle. Kliingi arvates, kuigi Rust omab muljetavaldavat ökosüsteemi, on see vähem mugav pikaajaliste programmide väljatöötamiseks, millel on suured keerulised objektigraanid. Lisaks iseloomustas Kling Rusti kogukonda kui "mürgist".
Tuletame meelde, et algselt arendati brauserit Ladybird SerenityOS operatsioonisüsteemi arendusprojekti raames. Juunis 2024 otsustas Andreas Kling, kes on varem töötanud Nokias ja tegelenud Safari arendamisega, eraldada brauseri projekti operatsioonisüsteemi projektist ning pühendada oma aega täielikult selle arendusele. Juulis sai projekt 1 miljoni dollari suuruse annetuse ja alustas mittetulundusühingu Ladybird Browser Initiative loomist.
Brauser on kirjutatud C++ keeles ja levitatakse BSD litsentsi alusel. Projekt arendab omaenda mootorit LibWeb, JavaScripti tõlgendajat LibJS, teksti ja 2D-graafika renderdamise teeki LibGfx, regulaarsete väljendite mootori LibRegex, XML-parsijat LibXML, WebAssembly vahecode'i tõlgendajat (LibWasm), Unicode'i töötlemise teeki (LibUnicode), tekstikoodide konverteerimist (LibTextCodec), Markdowni määratlemise parsijat (LibMarkdown), krüptograafilised primitivi teeke (LibCrypto, LibTLS), arhiivide töötlemise teeki (LibArchive), heli ja video esitamise teeke (LibAudio, LibVideo) ning LibCore teeki, mis sisaldab kasulikke funktsioone nagu aja konverteerimine, sisendi/väljundi töötlemine ja MIME tüüpide käsitlemine.
Ladybirdis kasutatakse mitme protsessi arhitektuuri, kus liidese loomise protsess on eraldatud veebisisu töötlemise, võrgu päringute saatmise, piltide dekodeerimise ja küpsisete salvestamise protsessidest. Piltide dekodeerimise ja võrgu interaktsiooniga seotud töötlejad on eraldatud eraldi protsessidesse, et suurendada isoleeritust ja turvalisust. Iga vahekaardi jaoks kasutatakse eraldi veebisisu töötlemise protsessi, mis on isoleeritud ülejäänud süsteemist. Liidese loomisel kasutatakse macOS-is AppKit'i, Androidis selle platvormi kohalikke API-sid ning teistel platvormidel Qt-d. Toetatakse põhiveebistandardeid (brauser läbib Acid3 teste), HTTP/1.1 ja HTTPS. Graafiline liides on kujundatud klassikalises stiilis ja toetab vahekaarte.
Allikas: opennet.ru
