Ladybird brauseri arendamiseks otsustati kasutada Swift keelt

Eksperimentaalse brauseri Ladybird arendajad on teatanud plaanist kasutada oma projekti põhikeelena programmeerimise keelt Swift. Koodi Skyftiga integreerimisega plaanitakse alustada sügisel, pärast Swift 6 versiooni ilmumist (Swift 5 haru kasutamine on takistatud, kuna see on seotud vana Clang versiooniga, mis ei ühildu Ladybird'i praeguse C++ koodibaasiga). Tänu C++ ja Swifti koodi kombineerimise võimalusele toimub Swifti integreerimine järk-järgult, ilma et oleks vaja olemasolevat koodi ümber kirjutada.

Swift'i valik tuleneb mitmetest eelistest, sealhulgas ohutust mälu-halduse meetoditest, kaitset võistluse tingimuste eest, kaasaegsest süntaksist ja ergonoomikast. Ladybird meeskonna jaoks on Swift'i objekt-orienteeritud loomus eriti oluline, kuna see võimaldab täpsemalt modelleerida veebispetsifikatsioone ja brauseri sisekomponente. Arendajad märkisid ka Swifti paranevat tuge mitte-Apple platvormide jaoks ning aktiivset tööd C++ ühilduvuse nimel, mis avab tee keele järkjärguliseks integreerimiseks projekti. Hoolimata ajaloolistest seostest Apple'iga, muutub Swift üha sõltumatumaks, nagu näitab näiteks tema repoprodukti üleviimine eraldi organisatsiooni GitHub'is.

Andreas Kling, Ladybird projekti asutaja, jagas oma mõtteid Rust'i kohta. Kliingi arvates, kuigi Rust'il on muljetavaldav ökosüsteem, on see vähem mugav pikaajaliste programmide arendamiseks suurte keeruliste objektigraafikutega. Lisaks iseloomustas Kling Rust'i kogukonda kui "mürgist".

Tuletame meelde, et Ladybird brauseri arendamine algas SerenityOS operatsioonisüsteemi arendusprojekti raames. Juunis 2024 otsustas Andreas Kling, kes on varem töötanud Nokias ja arendanud Safari, eraldada brauseri projekti operatsioonisüsteemi projektist ning pühenduda täielikult selle arendamisele. Juulis sai projekt 1 miljoni dollari ulatuses annetuse ja alustas mittevõttevõtte Ladybird Browser Initiative loomist.

Brauser on kirjutatud C++ keeles ja selle levitamine toimub BSD-litsentsi alusel. Projekti raames arendatakse välja enda LibWeb mootor, LibJS JavaScript tõlkija, teksti ja 2D-graafika renderdamise teek LibGfx, regulaarsete väljendite mootori LibRegex, XML-parsija LibXML, WebAssembly vahefailide tõlkija (LibWasm), Unicode'i töötlemise teek LibUnicode, tekstikoodide konverteerimise teek LibTextCodec, Markdowni märgistusparsija (LibMarkdown), krüptograafiliste primitiivide teegid (LibCrypto, LibTLS), archiivide töötlemise teek LibArchive, heli ja video taasesituse teekid (LibAudio, LibVideo) ning LibCore teek, mis pakub ulatuslikke abifunktsioone, nagu aja konverteerimine, sisendi/väljundi töötlus ja MIME-tüüpide haldamine.

Ladybirdis kasutatakse mitme protsessi arhitektuuri, kus kasutajaliidese loomise protsess on eraldatud web-sisu töötlemise, võrgutaotluste esitamise, piltide dekodeerimise ja küpsiste salvestamise protsessidest. Piltide dekodeerimise ja võrgusuhtluse seotud käsitlejad on eraldatud eraldi protsessidesse, et suurendada isoleeritust ja turvalisust. Iga vahekaardi jaoks kasutatakse eraldi web-sisu töötlemise protsessi, mis on eraldatud ülejäänud süsteemist. Kasutajaliidese ehitamiseks kasutatakse macOS-is AppKit'i, Androidis - platvormile kohandatud graafilise liidese API-d ning teistel platvormidel - Qt-d. Toetatakse peamisi web-standardeid (brauser läbib Acid3 teste), HTTP/1.1 ja HTTPS. Graafiline kasutajaliides on kujundatud klassikalises stiilis ja toetab vahekaarte.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster