KDAB が Qt 用の Servo WebView を導入しました

Qt のサーボ Web エンジン

Qt のサーボ Web エンジン

KDAB (デスクトップ、組み込み、モバイル プラットフォーム上で Qt、C++、3D/OpenGL ソフトウェアの専門知識を提供するリーダー) 発表の 最近彼のブログを通じて、 「Servo WebView for Qt」のリリース。この新しいツールは モーターを使用する ブラウザ Chromium ベースの Qt WebEngine モジュールの代わりに Servo、 QML アプリケーションで Web コンテンツを表示する代替手段を提供します。

サーボはプロジェクトです 当初は Mozilla によって開発され、現在は Linux Foundation の指導の下で、 Rustで書かれたWebレンダリングエンジン、 メモリの安全性と最新のマルチコア システムの効率的な使用に重点を置いています。

その機能の中で 最も注目すべきは、とWeb ページのマルチスレッド レンダリングのサポート、 DOM による操作の並列化と Rust が提供する安全なプログラミング メカニズムの使用。 シングルスレッドのコンテンツ処理スキームを採用する Firefox ブラウザ エンジンとは異なり、Servo は、DOM を分割してサブタスクを並列実行することで、最新のマルチコア システムを活用するように特別に設計されており、複数の CPU リソースの使用を最適化します。 Mozilla は、マルチスレッド CSS エンジンや WebRender レンダリング システムなど、Servo の一部を Firefox に統合しました。

Servo WebView Qt について

の統合 Qt アプリケーションの Servo WebView は、パフォーマンスを向上させ、効率を向上させることを目的としています。 この統合は、Qt アプリケーションのセキュリティにも大きく貢献します。 Qt でのサーボの統合 CXX-Qt レイヤーを通じて実現されます、Rust と C++ の間の橋渡しとして機能します。このレイヤーにより、Qt を使用して C++ プログラムとシームレスに統合する Rust コンポーネントを作成できます。これにより、セキュリティと Web 表示パフォーマンスに重点を置いた Qt アプリケーション開発の新たな可能性が開かれます。

KDAB では、Rust と C++ の間のブリッジとして CXX-Qt ライブラリを使用して、Servo Web エンジンを Qt 内に統合することに成功しました。これは、Qt アプリケーションの Web ビューに Chromium の代替として Servo を使用できることを意味します。

QML の観点から見ると、このコンポーネントは、canGoBack がプロパティとメソッドを提供するという点で Chromium WebView に似ています。 QML 要素自体は同じように動作し、コンテンツはそのサイズに合わせてレンダリングされます。

広告では、次のように述べられています。Servo WebView の最大の利点の 1 つは、Qt アプリケーションの攻撃対象領域を削減できることであると予想されます。 これは、メモリ管理エラーに関連する脆弱性の出現を最小限に抑える Rust 言語の使用により、WebView API を使用します。

これに加えて、次のようなことも述べられています。 統合により多くのメリットが得られます、 含む:

  1. セキュリティの強化: Rust で書かれている Servo は、攻撃対象領域を減らし、メモリ管理に関連する脆弱性を最小限に抑え、Qt アプリケーションのユーザーのより安全な Web ブラウジング エクスペリエンスに貢献します。
  2. よりよい性能: Servo は並列化とマルチコア CPU リソースの効率的な使用に重点を置いているため、Qt アプリケーションでの Web 表示パフォーマンスが向上し、よりスムーズで応答性の高いエクスペリエンスが提供されます。
  3. 柔軟性と拡張性: CXX-Qt を介して Servo を Qt に統合すると、Web アプリケーション開発に柔軟でスケーラブルなプラットフォームが提供され、コンテンツと機能が豊富なアプリケーションの新たな可能性が開かれます。

今後の開発・改善計画につきましては、 統合については、Rust と Qt 間のブリッジの追加研究と改善、組み込みシステム用 API の改善、OpenGL バックエンドの使用を強制するフレームバッファ オブジェクトの改善などについて言及されています。

最後に、それは言及されるべきです Qt 用の Servo WebView コードは MPL-2.0 に基づいてライセンスされています 詳細を知りたい場合は、詳細を参照してください。 次のリンクで。