De browserengine Kosmonaut is gepresenteerd, geschreven in de programmeertaal Rust.

In het kader van het project Kosmonaut ontwikkelt een browserengine die volledig is geschreven in Rust en gebruikmaakt van enkele ontwikkelingen van het project Servo. De code wordt verspreid is onder MPL 2.0 (Mozilla Public License). Voor de rendering worden OpenGL-bindingen gebruikt gl-rs in de programmeertaal Rust. Windowbeheer en het creƫren van de OpenGL-context zijn gerealiseerd door de bibliotheek Glutin. Voor het parseren van HTML en CSS worden de componenten html5ever en cssparser, ontwikkeld door het project Servo.
De code voor DOM-manipulatie is gebaseerd op de ontwikkelingen van het project Kuchiki, dat een bibliotheek ontwikkelt voor manipulaties met HTML/XML. Onder de gebruikte projecten wordt ook de experimentele webengine Robinson, die al ongeveer 5 jaar in een halfverlaten staat verkeert, genoemd.

In de huidige ontwikkelingsfase is er basisondersteuning voor HTML en een beperkte set CSS-mogelijkheden, die momenteel niet voldoende zijn om de meeste moderne pagina's weer te geven. Desondanks worden eenvoudige pagina's op div's met CSS correct gerenderd. Het project werd oorspronkelijk een jaar geleden gestart om het ontwikkelingsproces van browserengines te leren, maar probeert nu nieuwe toepassingsgebieden te vinden.

Wat al is geĆÆmplementeerd:

  • HTML-parsing, een subset van CSS, cascade CSS, de DOM-structuur.
  • Paginarepresentatie, block lay-out van inhoud.
  • Deeltijdondersteuning voor de abstracte box-modellen en de eigenschap "directionĀ«.
  • Het genereren van foutopsporingsdumps met de hiĆ«rarchie van weergegeven elementen.
  • Ondersteuning voor willekeurige schaalfactoren voor High-DPI-schermen.
  • Tekstweergave met behulp van de FreeType-bibliotheek.
  • Ondersteuning Flow Layout, contextafhankelijke inline-opmaak en rendering.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster