Pour continuer le développement du navigateur Ladybird, il a été décidé d'utiliser le langage Swift

Les développeurs du navigateur expérimental Ladybird ont annoncé leur intention d'utiliser le langage de programmation Swift comme langage principal pour leur projet. L'inclusion dans le code Swift devrait commencer à l'automne, après la sortie de Swift 6 (l'utilisation de la branche Swift 5 est empêchée par la connexion à l'ancienne version de Clang, incompatible avec la base de code actuelle de Ladybird en C++) . Grâce à la possibilité de combiner du code en C++ et Swift, Swift sera implémenté progressivement sans réécrire le code existant.

Swift a été choisi en raison d'un certain nombre d'avantages, notamment des pratiques de sécurité de la mémoire, une protection contre les conditions de concurrence, une syntaxe moderne et une ergonomie. La nature orientée objet de Swift est particulièrement importante pour l'équipe Ladybird, qui lui permet de modéliser avec plus de précision les spécifications Web et les composants internes du navigateur. Les développeurs notent également l'amélioration de la prise en charge de Swift pour les plateformes non Apple et un travail actif sur la compatibilité avec C++, qui ouvre la voie à l'introduction progressive du langage dans le projet. Malgré les liens historiques de Swift avec Apple, le langage devient de plus en plus indépendant, comme en témoigne, par exemple, le déplacement de son référentiel vers une organisation distincte sur GitHub.

Andreas Kling, fondateur du projet Ladybird, a partagé ses réflexions sur Rust. Selon Kling, bien que Rust dispose d’un écosystème impressionnant, il est moins adapté au développement de programmes de longue durée avec des graphes d’objets volumineux et complexes. De plus, Kling a décrit la communauté Rust comme « toxique ».

Rappelons que le navigateur Ladybird a été initialement développé dans le cadre d'un projet de développement du système d'exploitation SerenityOS. En juin 2024, Andreas Kling, qui travaillait autrefois chez Nokia et développait Safari, a décidé de séparer le projet de navigateur du projet de système d'exploitation et de se consacrer entièrement à son développement. En juillet, le projet a reçu un don d'un million de dollars et a commencé à former la Ladybird Browser Initiative, une organisation à but non lucratif.

Le navigateur est écrit en C++ et distribué sous licence BSD. Le projet développe son propre moteur LibWeb, un interpréteur JavaScript LibJS, une bibliothèque de rendu de texte et de graphiques 2D LibGfx, un moteur d'expression régulière LibRegex, un analyseur XML LibXML, un interpréteur de code intermédiaire WebAssembly (LibWasm), une bibliothèque pour travailler avec Unicode LibUnicode, une bibliothèque pour convertir du texte LibTextCodec. des encodages, un analyseur Markdown (LibMarkdown), des bibliothèques avec des primitives cryptographiques (LibCrypto, LibTLS), une bibliothèque pour travailler avec les archives LibArchive, des bibliothèques pour lire de l'audio et de la vidéo (LibAudio, LibVideo) et la bibliothèque LibCore avec un ensemble commun de fonctions utiles, tels que la conversion du temps, le traitement des E/S et du type MIME.

Ladybird utilise une architecture multiprocessus, dans laquelle le processus chargé de générer l'interface est séparé des processus responsables du traitement du contenu web, de l'envoi des requêtes réseau, du décodage des images et du stockage des cookies. Les gestionnaires associés au décodage des images et à l'interaction réseau sont séparés dans des processus distincts afin d'améliorer l'isolation et la sécurité. Chaque onglet utilise un processus de traitement du contenu web distinct, isolé du reste du système. Pour construire l'interface dans macOS AppKit est utilisé dans Android L'interface graphique native de cette plateforme utilise Qt, contrairement à d'autres plateformes où elle est utilisée. Elle prend en charge les principaux standards web (le navigateur réussit les tests Acid3), HTTP/1.1 et HTTPS. Son interface graphique présente un design classique et fonctionne avec des onglets.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster