Разработчиците на браузерния двигател Servo представиха инициатива за засилване на модулността и за преминаване от използването на нискоуровневи API на JavaScript двигателя SpiderMonkey, развиван от компанията Mozilla и използван в Servo за осигуряване на поддръжка на JavaScript и WebAssembly. В бъдеще Servo планират да преминат на по-високоуровневи API и абстрактен слой за взаимодействие с JavaScript двигатели, което ще позволи премахване на небезопасните директни повиквания към кода на SpiderMonkey, извършвани в unsafe блокове. В дългосрочен план това изменение ще позволи да се откажем от твърдата зависимост от SpiderMonkey и да осигурим поддръжка на други JavaScript и WebAssembly двигатели, като използвания в Chrome двигател V8.
Проектът Servo е написан на езика Rust и се отличава с поддръжка на многопоточен рендеринг на уеб страници, паралелизиране на операциите с DOM (Document Object Model) и използване на механизмите за безопасно програмиране, предоставяни от езика Rust. Проектът Servo първоначално е разработван от компанията Mozilla, но след това премина под закрилата на организацията Linux Foundation. Servo е създаден с поддръжка на разделянето на кода на DOM и рендеринга на по-малки подзадачи, които могат да се изпълняват паралелно и по-ефективно да използват ресурсите на многоядрените CPU. В Firefox вече са интегрирани някои части от Servo, като многопоточния CSS двигател и системата за рисуване WebRender.
Източник: opennet.ru
