Il progetto Ladybird, il browser open source nato nel 2022 come fork di SerenityOS e guidato da Andreas Kling, ha annunciato l’adozione di Rust come linguaggio per sostituire progressivamente il C++ nel codice del browser.
Il team aveva inizialmente valutato Swift come alternativa, ma secondo quanto dichiarato da Kling l’interoperabilità con il C++ non ha mai funzionato in modo soddisfacente e il supporto alle piattaforme al di fuori dell’ecosistema Apple è rimasto limitato. Rust era già stato preso in considerazione nel 2024 e scartato perché poco adatto alla programmazione orientata agli oggetti tipica delle API web. A distanza di un anno, però, la scelta è ricaduta comunque su Rust per la maturità dell’ecosistema e le garanzie sulla gestione della memoria. La stessa direzione già intrapresa, peraltro, da Firefox e Chromium.
Il primo passo: il motore JavaScript
Il primo componente ad essere portato in Rust è LibJS, il motore JavaScript di Ladybird. In particolare sono stati riscritti il lexer, il parser, l’albero sintattico e il generatore di bytecode, circa 25.000 righe di codice. Secondo Kling, il processo di traduzione è stato accelerato con l’uso di strumenti di intelligenza artificiale (Claude Code e Codex), sotto la sua supervisione diretta. Il lavoro è durato circa due settimane, un tempo che lo sviluppatore stima sarebbe stato di diversi mesi senza assistenza automatizzata.
Il team dichiara zero regressioni sui 52.898 test della suite test262 e sui 12.461 test interni di Ladybird, con output identico byte per byte rispetto alla versione C++.
Il prosieguo
Lo sviluppo del motore del browser proseguirà in C++. Il porting verso Rust è presentato come un’attività parallela e graduale, gestita dal team principale. La convivenza tra i due linguaggi avverrà attraverso confini di interoperabilità definiti.


