Servo는 WebGL 및 WebGPU를 지원하고 데스크탑, 모바일 및 임베디드 애플리케이션에 적용할 수 있는 Rust로 작성된 웹 렌더링 엔진이다.
Rust 생태계는 Servo라는 새로운 웹 렌더링 엔진을 개발해 왔다. 2012년 Mozilla가 처음 만든 Servo는 현재 Linux Foundation의 관리 하에 개발되고 있다.
Servo는 웹 엔진이 다른 애플리케이션 내에 훌륭하게 내장될 수 있도록 계속해서 발전하고 있다. 예를 들어 KDAB는 Qt 소프트웨어에 Servo를 내장하는 작업을 진행해 왔다. KDAB에서 개발하는 CXX-Qt 라이브러리가 Rust와 C++ 사이의 브리지로 사용하여 Qt에 Servo 웹 엔진을 내장할 수 있게 해준다.
이는 이제 Qt 애플리케이션의 웹뷰용 Chromium 대신 Servo를 사용할 수 있음을 의미한다.
QML 관점에서 볼 때 이 구성 요소는 canGoBack
, canGoForward
, loading
, title
, url
등의 속성 및 goBack
, goForward
메서드를 제공하는 등 Chromium 기반 WebView와 유사하다. QML 아이템 자체는 크기에 맞게 렌더링되는 콘텐츠와 동일한 방식으로 작동한다.
import QtQuick
import QtQuick.Window
import com.kdab.servo
Window {
height: 720
width: 1280
title: webView.title
visible: true
ServoWebView {
id: webView
anchors.fill: parent
url: "https://servo.org/"
}
}
CXX-Qt를 사용하여 Rust에서 Qt properties, invokables 및 event handlers(예: 터치 이벤트)를 정의하고 Servo 엔진에서 이벤트를 트리거할 수 있다. 그런 다음 Servo의 모든 업데이트 요청은 Qt 이벤트 루프를 통해 Qt 측 업데이트를 트리거할 수 있다.
CXX-Qt를 사용하여 Rust의 Servo를 Qt의 구성 요소로 표시하는 데모 github 저장소
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 | 운영자 | 2019.01.05 | 86204 |
10 | Qt 응용프로그램에서 PDF 문서 렌더링 | makersweb | 2021.09.23 | 681 |
9 | VirtualKeyboard 스타일 커스터 마이징 | makersweb | 2022.03.13 | 464 |
8 | 단일 인스턴스 Qt 응용 프로그램(Single-instance Application) | makersweb | 2022.06.23 | 707 |
7 | clazy 로 13개의 시그널, 슬롯 오류 해결 | makersweb | 2022.08.23 | 579 |
6 | QProcess 보안 권고 리뷰 | makersweb | 2022.09.18 | 602 |
5 | VTK 를 사용해서 강력한 시각화(3D, Plotting, Chart)Qt 응용프로그램 개발하기 | makersweb | 2022.10.16 | 1678 |
4 | Qt Property(속성) 시스템 | makersweb | 2023.01.08 | 1906 |
3 | Widgets(C++) 기반의 기본 스타일을 Dark 테마 및 Material 디자인 스타일로 바꾸기 | makersweb | 2023.01.28 | 1322 |
2 | Qt 하이브리드 애플리케이션(Hybrid App) 개발 | makersweb | 2023.02.08 | 1042 |
» | Qt 응용프로그램에 Web 구성 요소를 표시 with Servo | makersweb | 2024.04.27 | 171 |