Zhvilluesit e shfletuesit experimentale Ladybird njoftuan se kanë n intención to use the Swift programming language as the primary one for their project. Integrimi i kodit me Swift është planifikuar të fillojë në vjeshtë, pas daljes së versionit Swift 6 (përdorimi i degës Swift 5 pengon lidhjen me versionin e vjetër të Clang, i cili është i papajtueshëm me kodin aktual të bazës Ladybird në C++). Falë mundësisë për të kombinuruar kodin në C++ dhe Swift, implementimi i Swift do të bëhet gradualisht pa rishkrimin e kodit ekzistues.
Zgjedhja e Swift është e bazuar në një sërë përfitimesh, përfshirë metodat e sigurta të menaxhimit të memories, mbrojtjen nga gjendjet e garës, sintaksën moderne dhe ergonominë. Natyrisht objekt-oriented e Swift ka rëndësi të veçantë për ekipin e Ladybird, pasi lejon modelimin më të saktë të specifikimeve të web-it dhe komponenteve të brendshme të shfletuesit. Zhvilluesit gjithashtu theksojnë mbështetje në rritje të Swift për platformat jo-Apple dhe punën aktive në sigurimin e pajtueshmërisë me C++, e cila hap një rrugë për një implementim të gradual të gjuhës në projekt. Edhe pse Swift ka lidhje historike me Apple, gjuha po bëhet gjithnjë e më e pavarur, siç tregon, për shembull, transferimi i repository-t të saj në një organizatë të veçantë në GitHub.
Andreas Kling, themeluesi i projektit Ladybird, ndau mendimet e tij mbi Rust. Sipas Kling, megjithëse Rust ka një ekosistem mbresëlënës, ai është më pak i përshtatshëm për zhvillimin e aplikacioneve afatgjata me grafë objekte të mëdha dhe komplekse. Për më tepër, Kling e përshkroi komunitetin e Rust si "toksik".
Kujtojmë se fillimisht shfletuesi Ladybird u zhvillua brenda një projekti për zhvillimin e sistemit operativ SerenityOS. Në qershor 2024, Andreas Kling, i cili njëherë kishte punuar në kompania Nokia dhe kishte qenë i angazhuar në zhvillimin e Safari, vendosi të ndajë projektin e shfletuesit nga projekti i sistemit operativ dhe t'i përkushtohet plotësisht zhvillimit të tij. Në korrik, projekti mori një donacion prej 1 milion dollarësh dhe filloi formimin e një organizate jofitimprurëse të quajtur Ladybird Browser Initiative.
Shfletuesi është shkruar në gjuhën C++ dhe shpërndahet nën licencën BSD. Projekti zhvillon një motor të vetin LibWeb, një interpretues JavaScript të quajtur LibJS, një bibliotekë për përshkrimin e tekstit dhe grafikës 2D të quajtur LibGfx, një motor për shprehje të zakonshme LibRegex, një parser XML të quajtur LibXML, një interpretues për kodin midis WebAssembly (LibWasm), një bibliotekë për punën me Unicode LibUnicode, një bibliotekë për transformimin e kodimeve të tekstit LibTextCodec, një parser për përmbajtjen Markdown (LibMarkdown), biblioteka me elemente kriptografike (LibCrypto, LibTLS), një bibliotekë për punën me arkivat LibArchive, biblioteka për riprodhimin e zërit dhe videos (LibAudio, LibVideo) dhe biblioteka LibCore me një grup të përgjithshëm të funksioneve të dobishme, si transformimi i kohës, hyrja/dalja dhe përpunimi i MIME-tipeve.
NĂ« Ladybird aplikohet njĂ« arkitekturĂ« multi-procesesh, nĂ« tĂ« cilĂ«n procesi qĂ« merret me formimin e interfaces Ă«shtĂ« i ndarĂ« nga proceset qĂ« mbulojnĂ« pĂ«rpunimin e pĂ«rmbajtjes web, dĂ«rgimin e kĂ«rkesave nĂ« rrjet, dekodimin e imazheve dhe ruajtjen e Cookie-ve. PjesĂ«t qĂ« lidhen me dekodimin e imazheve dhe ndĂ«rveprimin e rrjetit janĂ« tĂ« ndara nĂ« procese tĂ« veçanta pĂ«r tĂ« forcuar izolimin dhe mbrojtjen. PĂ«r çdo skedĂ« pĂ«rdoret njĂ« proces i veçantĂ« pĂ«r pĂ«rpunimin e pĂ«rmbajtjes web, tĂ« izoluar nga sistemi tjetĂ«r. PĂ«r ndĂ«rtimin e interfaces nĂ« macOS, pĂ«rdoret AppKit, ndĂ«rsa nĂ« Android pĂ«rdoret API-tĂ« native pĂ«r krijimin e interfaces grafike, dhe nĂ« platformat e tjera â Qt. MbĂ«shteten standardet kryesore tĂ« web-it (shfletuesi kalon testet Acid3), HTTP/1.1 dhe HTTPS. Interface grafike Ă«shtĂ« e dizajnuar nĂ« njĂ« stil klasik dhe mbĂ«shtet skedarĂ«.
Burimi: opennet.ru
