アプリケーションへのWeb技術の埋め込みにおいて、軽量で高性能な代替手段を提供するために設計されたWebエンジンであるServoのバージョン0.7.0がリリースされました。このアップデートは527件のコミットを網羅しており、`<progress>`要素、`:checked`擬似クラス、`user-select`プロパティを含むいくつかの新しいWebプラットフォーム機能を導入しています。これらの追加は、パフォーマンスと開発者体験への焦点を維持しながら、標準的なWeb機能との互換性を拡大しようとするServoの継続的な取り組みの一環です。

このアップデートでは、CSSおよびDOM APIにも大幅な強化が加えられています。新しいCSS機能には、型付き算術、`alpha()`関数、`font-width`プロパティが含まれます。DOM側では、`CSSRule`および`CSSStyleDeclaration`における`parentRule`や、`HTMLHtmlElement`における`version`など、いくつかの新しいAPIが追加されました。さらに、このエンジンはSVG要素の処理を改善し、WebCrypto用にMLKEM768-X25519アルゴリズムを統合しました。これらの更新は、複雑なWebコンテンツのレンダリングにServoを依存する開発者に対し、より堅牢で機能の完全な環境を提供することを目的としています。

Servo WebエンジンでレンダリングされたCandy Crushのゲーム
Servoエンジンは、Candy Crushのゲームを用いてそのレンダリング能力を実証しています。servo.org

この画像は、アップデートで説明されている複雑なWebコンテンツやゲームをレンダリングするエンジンの能力を例示しています。

Servo Webエンジンでレンダリングされたegui.rsのウェブサイト
Servo環境内でのegui.rsウェブサイトのレンダリング。servo.org

この視覚情報は、Servoが複雑なWebコンテンツをレンダリングするための堅牢な環境を提供しているという主張を裏付けています。

安定性と開発者体験も0.7.0リリースの重要な焦点でした。チームは、不要なアロケーションを減らし、ガベージコレクタとの相互作用を減らすことでパフォーマンスを向上させるためのいくつかの最適化を実施しました。また、WebRTCやその他のいくつかのコンポーネントの修正を含む、さまざまな安定性の問題に対処しました。これらの改善はエンジンの信頼性を高める一方で、いくつかの変更にはトレードオフも伴います。例えば、WebViewが非表示の際に自動的にスロットリングされるようにするため、`WebView::set_throttled` APIは削除されました。さらに、WebGLがデフォルトのWeb機能に含まれるようになったため、バイナリサイズを削減するためにWebGLを除外したい開発者は、手動でデフォルト機能を無効にする必要があります。