De ontwikkelaars van de browser-engine Servo hebben een initiatief gepresenteerd om de modulariteit te versterken en af te stappen van het gebruik van lage-niveau API's van de JavaScript-engine SpiderMonkey, ontwikkeld door Mozilla en gebruikt in Servo voor de ondersteuning van JavaScript en WebAssembly. In de toekomst is het plan om Servo over te zetten naar een hogere niveau API en abstractielaag voor interactie met JavaScript-engines, wat de mogelijkheid biedt om onveilige directe aanroepen naar de SpiderMonkey-code, uitgevoerd in unsafe-blokken, te elimineren. Op de lange termijn zal deze wijziging het mogelijk maken om los te komen van de stevige binding aan SpiderMonkey en ondersteuning voor andere JavaScript- en WebAssembly-engines, zoals de V8-engine die in Chrome wordt gebruikt, te garanderen.
Het Servo-project is geschreven in de programmeertaal Rust en onderscheidt zich door ondersteuning van multithreaded rendering van webpagina's, parallelisatie van DOM (Document Object Model) bewerkingen en het gebruik van de door Rust aangeboden mechanismen voor veilig programmeren. Het Servo-project werd oorspronkelijk ontwikkeld door Mozilla, maar is later onder de hoede van de Linux Foundation gekomen. Servo is vanaf het begin ontworpen met ondersteuning voor het splitsen van DOM-code en rendering in kleinere subtaken die parallel kunnen worden uitgevoerd en de middelen van multicore CPU's efficiënter kunnen benutten. Sommige onderdelen van Servo, zoals de multithreaded CSS-engine en het renderingsysteem WebRender, zijn al geïntegreerd in Firefox.
Bron: opennet.ru
