Ladybird è il nome di un progetto legato allo sviluppo di un nuovo browser Web, dove "nuovo" è la parola chiave dell'iniziativa. In un periodo storico in cui gran parte delle applicazioni di questo tipo condividono la medesima codebase, solitamente quella di Chromium, Ladybird viene infatti realizzato da zero. Senza ereditare alcun engine da altri vendor. Senza utilizzare codice, open o closed source che sia, da software già esistenti.
Cosa è Ladybird
Alle spalle del progetto troviamo un'organizzazione non-profit statunitense che ha già pubblicato un repository GitHub dedicato al browser rilasciandolo sotto licenza BSD. Tutto nasce da un visualizzatore HTML per SerenityOS creato nel 2018 dallo sviluppatore Andreas Kling che è anche la vera mente del progetto.
Announcing the Ladybird Browser Initiative 🐞https://t.co/rT5DxlDJTr
— Ladybird (@ladybirdbrowser) July 1, 2024
Attualmente l'applicazione si trova in fase di pre-alpha ed è quindi molto lontana dal poter essere utilizzata in un ambiente di produzione. L'architettura di riferimento è multiprocesso con un processo principale dedicato all'interfaccia utente. A quest'ultimo se ne affiancano poi altri dedicati al rendering, al decoding delle immagini e alla gestione delle richieste per i server.
Buona parte delle librerie che permettono il funzionamento di Ladybird sono state mutuate da SerenityOS. Tra di esse troviamo un motore di rendering (LibWeb), un engine JavaScript (LibJS) e un'implementazione di WebAssembly (LibWasm). Sono disponibili anche un client un HTTP/1.1 (LibHTTP) a cui si aggiungono il supporto per la codifica Unicode nonché librerie per la grafica bidimensionale e la gestione dell'audio.
Per quanto riguarda la sicurezza, sia la decodifica delle immagini che le connessioni di rete vengono effettuate al di fuori del processo principale per garantire un maggior livello di protezione da eventuali contenuti malevoli. Ciascuna tab è associata ad un processo di rendering specifico che viene isolato rispetto al resto del sistema.
Compatibilità cross-platform
Per la build è richiesto il package multimediale Qt6, fatta esclusione per i sistemi Linux che supportano PulseAudio. Il browser è compatibile con varie distribuzioni Linux cosi come con macOS e Windows tramite WSL2.