W celu kontynuacji rozwoju przeglądarki Ladybird postanowiono użyć języka Swift.

Twórcy eksperymentalnej przeglądarki Ladybird ogłosili zamiar użycia języka programowania Swift jako głównego dla swojego projektu. Włączenie kodu w Swift planowane jest na jesień, po wydaniu wersji Swift 6 (użycie gałęzi Swift 5 utrudnia powiązanie z przestarzałą wersją Clang, która nie jest zgodna z aktualną bazą kodu Ladybird w C++). Dzięki możliwości łączenia kodu w C++ i Swift, wdrożenie Swift będzie przebiegać stopniowo, bez przepisania istniejącego kodu.

Wybór Swift jest uzasadniony szeregiem zalet, w tym bezpiecznymi metodami zarządzania pamięcią, ochroną przed wyścigami stanów, nowoczesną składnią i ergonomią. Szczególne znaczenie dla zespołu Ladybird ma obiektowo-orientowana natura Swift, co pozwala na precyzyjniejsze modelowanie specyfikacji internetowych i wewnętrznych komponentów przeglądarki. Twórcy zauważają również poprawiające się wsparcie dla Swift na platformach nie-Apple oraz aktywną pracę nad kompatybilnością z C++, co otwiera drogę do stopniowego wdrożenia języka w projekcie. Pomimo historycznych powiązań Swift z Apple, język staje się coraz bardziej niezależny, co potwierdza przeniesienie jego repozytorium do oddzielnej organizacji na GitHubie.

Andreas Kling, założyciel projektu Ladybird, podzielił się swoimi przemyśleniami na temat Rust. Jego zdaniem, chociaż Rust ma imponujący ekosystem, jest mniej wygodny do tworzenia długoterminowych programów z dużymi, złożonymi grafami obiektów. Ponadto, Kling określił społeczność Rust jako "toksyczną".

Przypomnijmy, że początkowo przeglądarka Ladybird rozwijała się w ramach projektu dotyczącego systemu operacyjnego SerenityOS. W czerwcu 2024 roku Andreas Kling, który wcześniej pracował w Nokia i zajmował się rozwojem Safari, postanowił oddzielić projekt przeglądarki od projektu systemu operacyjnego i w pełni poświęcić swój czas jego rozwojowi. W lipcu projekt otrzymał darowiznę w wysokości 1 miliona dolarów i rozpoczął tworzenie organizacji non-profit Ladybird Browser Initiative.

Przeglądarka została stworzona w języku C++ i jest dystrybuowana na licencji BSD. Projekt rozwija własny silnik LibWeb, interpreter JavaScript LibJS, bibliotekę renderowania tekstu i grafiki 2D LibGfx, silnik dla wyrażeń regularnych LibRegex, parser XML LibXML, interpreter kodu pośredniego WebAssembly (LibWasm), bibliotekę do pracy z Unicode LibUnicode, bibliotekę do konwersji kodowania tekstów LibTextCodec, parser dla znaczników Markdown (LibMarkdown), biblioteki dla kryptograficznych prymitywów (LibCrypto, LibTLS), bibliotekę do pracy z archiwami LibArchive, biblioteki do odtwarzania dźwięku i wideo (LibAudio, LibVideo) oraz bibliotekę LibCore z zestawem przydatnych funkcji, takich jak konwersja czasu, wejście/wyjście i przetwarzanie typów MIME.

Ladybird stosuje architekturę wieloprocesową, w której proces odpowiedzialny za interfejs jest oddzielony od procesów zajmujących się przetwarzaniem treści webowych, wysyłaniem zapytań przez sieć, dekodowaniem obrazów oraz przechowywaniem ciasteczek. Procesy związane z dekodowaniem obrazów i interakcją z siecią są wyodrębnione w osobne procesy dla zwiększenia izolacji i bezpieczeństwa. Dla każdej karty używany jest osobny proces przetwarzania treści webowych, izolowany od reszty systemu. Do budowy interfejsu w macOS używany jest AppKit, w Androidzie – natywny dla tej platformy interfejs API, a na pozostałych platformach – Qt. Obsługiwane są podstawowe standardy webowe (przeglądarka przechodzi testy Acid3), HTTP/1.1 oraz HTTPS. Interfejs graficzny zaprojektowany jest w klasycznym stylu i obsługuje karty.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster