Le moteur de navigateur Kosmonaut, écrit en Rust, a été introduit

Dans le cadre du projet cosmonaute Un moteur de navigateur est en cours de développement, entièrement écrit en langage Rust et utilisant certains des développements du projet Servo. Code distribué par sous licence MPL 2.0 (Mozilla Public License). Les liaisons OpenGL sont utilisées pour le rendu gl-rs en langage Rust. La gestion des fenêtres et la création de contexte OpenGL sont implémentées par la bibliothèque Glutine. Les composants sont utilisés pour analyser HTML et CSS html5ever и analyseur de CSSdéveloppé par le projet Servo.
Le code pour travailler avec le DOM est basé sur les développements du projet Kuchiki, qui développe une bibliothèque pour manipuler HTML/XML. Parmi les projets utilisés, un moteur web expérimental est également évoqué Robinson, qui est dans un état semi-abandonné depuis environ 5 ans.

Au stade actuel de développement, une prise en charge HTML de base et un ensemble limité de fonctionnalités CSS sont fournis, qui ne sont pas encore suffisants pour afficher la plupart des pages modernes. Néanmoins pages simples sur les divs avec CSS sont dessinés correctement. Le projet a été initialement lancé il y a un an pour enseigner le processus de développement de moteurs de navigation, mais il tente désormais de trouver de nouvelles niches d'application.

Ce qui a déjà été mis en œuvre :

  • Analyse HTML, sous-ensemble CSS, CSS en cascade, DOM.
  • Rendu de page, mise en page du contenu de bloc.
  • Prise en charge partielle du résumé modèles de boîte et propriétés "direction«.
  • Génération de dumps de débogage avec une arborescence d'éléments affichés.
  • Prend en charge les facteurs de mise à l'échelle arbitraires pour les écrans haute résolution.
  • Rendu du texte à l'aide de la bibliothèque FreeType.
  • support Disposition du flux, formatage et rendu en ligne sensibles au contexte.

Source: opennet.ru

Ajouter un commentaire