Servo, un motor web diseñado para proporcionar una alternativa ligera y de alto rendimiento para integrar tecnologías web en aplicaciones, ha lanzado la versión 0.7.0. Esta actualización abarca 527 commits e introduce varias nuevas funciones de plataforma web, incluyendo el elemento `<progress>`, la pseudoclase `:checked` y la propiedad `user-select`. Estas adiciones forman parte del esfuerzo continuo de Servo para ampliar su compatibilidad con las funciones web estándar mientras mantiene su enfoque en el rendimiento y la experiencia del desarrollador.

La actualización también aporta mejoras significativas a las APIs de CSS y DOM. Las nuevas capacidades de CSS incluyen aritmética tipada, la función `alpha()` y la propiedad `font-width`. En el lado del DOM, Servo añadió varias APIs nuevas, como `parentRule` en `CSSRule` y `CSSStyleDeclaration`, y `version` en `HTMLHtmlElement`. Además, el motor mejoró su manejo de elementos SVG e integró el algoritmo MLKEM768-X25519 para WebCrypto. Estas actualizaciones tienen como objetivo proporcionar un entorno más robusto y completo en funciones para los desarrolladores que dependen de Servo para renderizar contenido web complejo.

Un juego de Candy Crush renderizado en el motor web Servo
El motor Servo demuestra sus capacidades de renderizado con un juego de Candy Crush.servo.org

Esta imagen ilustra la capacidad del motor para renderizar contenido web complejo y juegos, tal como se describe en la actualización.

El sitio web egui.rs renderizado en el motor web Servo
Un renderizado del sitio web egui.rs dentro del entorno Servo.servo.org

Esta representación visual respalda la afirmación de que Servo proporciona un entorno robusto para renderizar contenido web complejo.

La estabilidad y la experiencia del desarrollador también fueron enfoques clave de la versión 0.7.0. El equipo implementó varias optimizaciones para reducir las asignaciones innecesarias y mejorar el rendimiento al disminuir las interacciones con el recolector de basura. También abordaron varios problemas de estabilidad, incluyendo correcciones para WebRTC y otros componentes. Si bien estas mejoras aumentan la fiabilidad del motor, algunos cambios implican compromisos; por ejemplo, la API `WebView::set_throttled` fue eliminada en favor de un estrangulamiento automático cuando un WebView está oculto. Además, debido a que WebGL ahora está incluido en las funciones web predeterminadas, los desarrolladores que deseen excluirlo ahora deben desactivar manualmente las funciones predeterminadas para reducir el tamaño del binario.